jQuery基础知识总结

  1. jQuery是JavaScript的函数库,包含HTML元素选取、操作,CSS操作,HTML事件函数,JavaScript特效和动画,HTML DOM遍历和修改,AJAX,Utilities
  2. Google/Microsoft CDN加载
  3. $(document).ready(function(){ });加载完文档运行函数
  4. jQuery使用$符号作为jQuery的简写,其他库也使用$符号就需要noConflict()来解决该问题,var jq = jQuery.noConflict();用jq来代替$
  5. $(selector).hide/show(speed,callback); toggle()隐藏显示
    - speed参数取值 “slow”、”fast”、毫秒
  6. fade(In/Out/Toggle)(speed,callback) fadeTo(speed,opacity,callback)可以给定不透明度 淡入淡出
  7. slide(Down/Up/Toggle)(speed,callback)上下滑动
  8. animate({params},speed,callback) 动画 可以操作所有CSS属性,但必须使用Camel(驼峰)标记法书写所有属性名
  9. stop(stopAll,goToEnd) stopAll是否清除动画队列,默认flase,goToEnd是否立即完成动画 默认flase 停止任何动画或效果
  10. 相同元素上的动画可以链接起来
  11. DOM操作
    - text() 设置或返回选择元素的文本内容,
    - html() 设置或返回选择元素的内容(包括HTML标记),
    - val() 设置或返回表单字段值,
    - attr() 设置或返回属性值,
    - 以上函数均可有回调函数,两个参数为列表中当前元素下标和原始值origValue
    - append()/prepend()/after()/before() 也可以添加若干新元素
    - remove()/empty() 删除被选元素及子元素(接受一个参数)/删除子元素
  12. 操作CSS
    - addClass()/removeClass()/toggleClass()/css()
  13. 处理尺寸
    - width()/height() 元素宽高,不包括内边距、边框、外边距,有参数为设置
    - innerWidth()/innerHeight() 包括内边距
    - outerWidth()/outHeight() 包括内边距和边框,参数为true返回值
    - $(document/window).width() 返回文档/浏览器视口的宽
  14. 遍历
    - parent()/parents()/parentsUntil() 直接父元素/所有父元素一直到文档根节点<html>/两个元素之间的祖先元素
    - children()/find() 直接子元素/后代所有元素
    - siblings()/next()/nextAll()/nextUntil()/prev()/prevAll()/prevUntil() 同胞元素
    - first()/last()/eq()/filter()/not() 索引从0开始/返回匹配的/返回不匹配的和filter()相反
    - bind() 匹配元素附加事件处理器

  15. 详细:
    - 1. jQuery对象和DOM对象及解决和其他库的冲突

    var $variable = jQuery对象;
    var variable = DOM对象;

    jQuery对象转DOM对象
    两种方法[index]get(index)

    var $cr = $("#cr"); //jQuery对象
    var cr = $cr[0]; //DOM对象

    DOM对象转jQuery对象
    只需要把DOM对象用$()包裹起来

    var cr = dcoument.getElementById("cr"); //DOM对象
    var $cr = $(cr); //jQuery对象

    jQuery库在其他库之后倒入,需要调用jQuery.noConflict()来将变量$控制权转移,也可以自己定义一个快捷方式,如$j = jQuery.noConflict();这样就用$j代替了$。相反,jQuery库在之前调入就无需这么做
    - 2. jQuery选择器
    - 基本选择器
    - #id .class element * selectot1,selector2,...,selectorN
    $(this)获取当前的HTML
    - 层次选择器
    - $("ancestor descendant") 选取ancestor的所有descendant(后代)元素
    - $("parent>child") 选取parent的child元素(直接子元素)
    - $("prev+next") 选取紧跟在prev元素后的next元素 等价$("prev").next("next")
    - $("prev~siblings") 选取prev元素之后的所有siblings元素(兄弟,在自己的后面) 等价$("prev").nextAll("siblings")
    - 过滤选择器
    - 基本过滤选择器
    :first :last :not(selector) :even :odd :eq(index) :gt(index) :lt(index) :header :animated :focus
    :hearder 获取的网页中的标题<h1>...<h6>
    :animated 当前正在执行的动画
    - 内容过滤选择器
    :contains(text) :empty :has(selector)
    :parent 获取含有子元素或者文本的元素(包括文本元素)
    - 可见性过滤选择器
    :hidden 包括样式属性display:none;<input type="hidden">
    :visible
    - 属性过滤选择器
    [attribute] [attribute=value] [attribute!=value] attribute^=value attribute$=value attribute*=value attribute|=value attribute ~=value [att][att][...]
    |选取value为前缀(或后面跟一个”-“连字符)的元素 ~用空格分隔的值中包含value的元素
    - 子元素选择过滤器
    - :nth-child(index/even/odd/equation) index从1算起,例如3n+1时,n从1开始
    - :first-child :last-child
    - :only-child 某个元素是它父元素的唯一一个子元素
    - 表单对象属性过滤选择器
    - :enabled :disabled :checked
    - :selected 下拉列表中被选中的元素
    - 表单选择器
    - :input 所有<input> <textarea> <select> <button>元素
    :text :password :radio :chexkbox submit :image :reset :button :file :hidden
    - 3. jQuery中DOM对象的操作
    - 查找节点
    - 元素节点jQuery选择器,属性节点attr()
    - 创建节点
    - $() jQuery工厂函数,里面插入HTML标记字符串
    - 插入节点
    - append() prepend() after() before() insertBefore()
    - appendTo() $(A).appendTo(B) 将A追加到B中
    - insertAfter() $(A).insertAfter(B) A插入到B后面
    - 删除节点
    - remove() 后代节点将同时被删除,返回值指向一个已经被删除的节点的应用,可以在以后再使用这些元素,绑定事件将失效
    - detach() 与remove()不同的是所有绑定,附加的数据都会保留下来
    - empty() 严格来说,不是删除节点而是清空节点,包括后代元素
    - 复制节点
    - clone() 该方法中传递一个true参数,复制元素中的所绑定的事件
    - 替换节点
    - replaceWith() 匹配元素替换成指定的HTML或DOM元素 $("p").replaceWith("<h1>a</h1>")
    - replaceAll() 颠倒replaceWith()操作
    - 包裹节点
    - wrap() $(strong).wrap("<b></b>")<b><strong>包裹起来,单个单个包裹
    - wrapAll() 同时包裹多个
    - wrapInline() 包裹元素的内容
    - 属性操作
    - attr() 获取或设置元素属性 removeAttr()删除元素属性
    - 样式操作
    - addClass()追加类 removeClass()删除类,指定的或者全部 toggle() toggleClass() is()判断是否存在,是hasClass()的增强
    - 设置获取HTML
    - html()获取或设置HTML内容 text()获取或设置文本内容 val()设置或获取元素的值 defaultValue属性包含表单元素的初始值
    - val()另一个用处就是它能使select,checkbox,radio相应的选项被选中
    - 遍历节点
    - children() 取得匹配元素的子元素的集合,不考虑后代
    - next() 紧邻的同辈元素 prev() siblings()同辈元素
    - closest() 最近的不匹配返回自身 parens() parents()
    -
    \- CSS-DOM操作
    \- 读取设置`style`对象的各种属性,无法通过外部CSS文件设置,数字自动转像素
    \- `width()` 获取元素的宽\(px\) `height()`
    \- `offset()`当前视窗的相对偏移 `position()`与最近的position属性设置为relative或absolute的祖父节点的相对偏移
    \- `scrollTop()` `scrollLeft()` 获取滚动条距离顶端或左侧的距离
    \-

    - 4. jQuery中的事件和动画
    - 事件
    - 记载DOM
    - $(document).ready()可以多次执行,在现有行为上追加 DOM加载完就可以访问 window.onload要加载完所有元素 多次调用会覆盖
    - 事件绑定
    - bind(type[,data],fn) blur,focus,load,resize,scroll,unload,click,dbclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,err或自定义
    - 简写 $("p").click(function(){}) 减少代码量
    - 合成事件
    - hover(enter,leave) 鼠标移动到元素上会触发enter函数,离开leave函数 toggle(fn1,fn2,...,fnN)模拟连续单击事件
    - 事件冒泡
    - 事件对象只要为函数添加一个参数(event),事件发生时事件对象被创建,只有事件处理函数能访问,事件处理完对象被销毁,事件方法stopPropagation()来停止事件冒泡。preventDefault()方法阻止默认行为,像单击链接后就会提交,单击提交后表单会提交。同时阻止对象事件冒泡和默认行为,可以在事件处理函数返回false
    - 事件的对象属性
    - event.type获取事件的类型 event.stopPropagation() event.preventDefault() event.target事件对象 event.pageX event.pageY光标相对于页面的x,y坐标 enent.witch获取鼠标单击事件鼠标的左中右键(对应1,2,3) event.metaKey获取<ctrl>按键
    - 移除事件
    - unbind([type],[data]) 可以删除全部或某一个
    - one(type[,data],fn) 触发一次立即被删除
    - on(type[,data],fn) 事件绑定,加载完页面绑定也有作用 off()
    - delegaet() undelegate()
    - 模拟操作
    - trigger(type[,data]) 不需要主动单击 触发一个自定义myClick
    - 其他用法
    - bind("f1 fnN",function(){})绑定多个方法
    - 动画
    - show(["slow"]["fast"][ms]) hide() fadeIn() fadeOut() slideUp() slideDown()
    - animate(params,speed,callback) 累加,累减 在animate()中只要在变的值的数值前加+= 例如animate({left: “+=50px”,height: “-=20px”},300); 链式animate()按顺序执行,回调函数对非动画方法排队
    - 停止动画stop([cleanQueue],[gotoEnd])参数均为Boolean,代表是否清空未执行完的动画队列,直接跳到末状态 delay(ms)延迟动画
    - toggle(speed,[callback]) slideToggle(speed,[easing],[callback]) fadeTo(speed,opacity,[callback]) fadeToggle(speed,[easing],[callback])
    - 5. 表单,表格操作
    - 滚动条上下按钮先要判断是否在有动画 复选框判断checked是否为true来判断是否选中 require属性为必填
    - 6. jQuery和Ajax的应用
    - Ajax最大好处能在不刷新整个网页前提下更新数据 不足:破坏前进 后退按钮 SEO支持不足
    - Ajax

    var xmlHttpReq =null;
    if(widow.ActiveXObject){
    xmlHttpReq = new ActiceXObject("Microsoft.XMLHTP");
    }else if(window.XMLHttpRequest){
    xmlHttpReq = new XMLHttpRequest();
    }
    xmlHttpReq.open("GET","index.html",true);
    xmlHttpReq.onreadystatechange = RequestCallBack;
    xmlHttpReq.send(null);

    jQuery中的Ajax

    load(url[,data][,callback]); //没data参数传递,采用GET方式,从Web服务器获取静态的 数据文件
    $.get(url,[.data][.callback][,type])/$.post() 进行异步请求,type参数为服务器返回的格式/
    $.getScript()/$.getJson()
    $.ajax(options) 参数:`url`默认当前页地址 `type` GET/POST/PUT/DELETE `timeout`请求超时 `data`发送的服务器数据 `dataType`预期服务器返回类型 `beforeSend`函数,修改XMLHttpRequest对象函数 `complate`请求完成后调用的回调函数 `success`请求成功后回调函数 `error`请求失败被调用函数 `global`默认true触发全局Ajax事件

    serialize()表单序列化元素,DOM序列化为字符串 serializeArray()DOM序列化返回JSON格式数据 $.param() 对一个数组或对象按照key/value进行序列化
    ajaxComplete(callback)/ajaxError(callback)/ajaxSend(callback)/ajaxSuccess(callback)Ajax请求完成时/发生错误/请求发送前/请求成功时
    - 7. jQuery插件
    - 1. jQuery表单验证插件-Validation
    - 2. jQuery表单插件-Form
    - 3. 模态窗口插件-SimpleModal
    - 4. 管理Cookie插件-Cookie
    - 5. jQuery UI插件
    - 8. jQuery Mobile

区别

  • attr()/prop() 两者皆获取匹配元素集合中的第一个元素的属性,或为匹配元素设置一个或多个属性,但主要关键是源码中实现的两个部分 前者和后者的关键代码为
    elem.setAttribute( name, value + "" );ret = elem.getAttribute( name );
    return ( elem[ name ] = value );return elem[ name ];
    可以参考改图得出结论就是boolean属性的值我们可以通过prop()来操作,其他用attr()
    prop和attr区别

猜你喜欢

转载自blog.csdn.net/u013270347/article/details/80327754