代码改变世界

JQ基础

2015-11-15 21:51  we星星  阅读(288)  评论(0编辑  收藏  举报
一.选择器
1.基本选择器:基本选择器是Jquery中最常用的选择器,也是最简单的选择器,他通过元素id、class和标签名等来查找DOM元素。在网页中,每个id名称只能使用一次,class允许重复使用。
 
#id       根据给定的id匹配一个元素  $("#test")选取id为test的元素
.class    根据给定的类名匹配元素    $(".test")选取所有class为test的元素
element   根据给定的元素名匹配元素  $("p")选取所有的元素
*         匹配所有元素              $("*")选取所有的元素
selector1,selector2,...selectorN    $("div,span,p.myClass")选取所有,和拥有class为myClass的标签的一组元素
 
2.层次选择器:通过DOM元素之间的层次关系来获取特定元素,例如后代元素、子元素、相邻元素和同辈元素等。
$("ancestor descendant")   选取ancestor元素里的所有descendant(后代)元素    $("div span")选取里的所有的元素
 
$("parent>child")选取parent元素下的child(子)元素,与$("ancestor descendant")有区别,$("ancestor descendant")选择的是后代元素   $("div>span")选取
元素下元素名是的子元素
 
$("prev+next")  选取紧接在prev元素后的next元素   $(".one+div")选取class为one的下一个
同辈元素。
 
$("prev~siblings")选取prev元素之后的所有siblings元素    $("#two~div")选取id为two的元素后面的所有
同辈元素。
 
3.过滤选择器
1.基本过滤选择器
a.:first   选取第一个元素     $("div:first")选取所有
元素中第一个                              
元素
b.:last    选取最后一个元素   $("div:last")选取所有
元素中最后一                              个
元素
c.:not(selector) 去除所有与给定选择器匹配的元素   $("input:not(.mayclass)")选取class不是myClass元素
  
d.:even/:odd选取索引是偶数/奇数的所有元素
 
e.:eq(index)/gt(index)/lt(index)选取索引等于/大于/小于index的元素
 
f.:header   选取所有的标题元素   $(":header")选取网页中所有的

g.:animated  选取当前正在执行动画的所有元素   $("div:animated")

h.:focus  选取当前获得焦点的元素  

2.内容过滤选择器

a.:contain(text)   选取含有文本内容为text的元素   $("div:contains('我')")选取含有文本‘我’的div元素

b.:empty 选取不包含子元素或文本的空元素    $("div:empty")选取不包含子元素的空元素

c.:has(selector)选取含有选择器所匹配的元素的元素  $("div:has(p)")选取含有元素的元素

d.:parent      选取含有子元素或文本的元素       $("div:parent")选取拥有子元素(包括文本元素)的元素
 
3.可见性过滤选择器
a.:hidden    选取所有不可见的元素
b.:visible   选取所有可见的元素   $("div:visible")选取所有可见的元素
 
4.属性过滤选择器:通过元素的属性来获取相应的元素
a.[attribute]     选取拥有此属性的元素   $("div[id]")选取拥有属性id的元素    $("div[id]")选取拥有属性id的元素
 
b.[attribute=value]    选取属性值为value的元素     $("div[title=test]")选取属性title为"test"的元素
 
c.[attribute!=value] 不等于value
  [attribute^=value] 以value开始的元素
  [attribute$=value] 以value结束的元素
  [attribute*=value] 含有value的元素
  [attribute|=value] 选取属性等于给定字符串或以该字符串为前缀的元素 
  [attribute~=value] 选取属性用空格分隔的值中包含一个给定值得元素
  [attribute1][attribute2][attributeN]
 
5.子元素过滤选择器
a.:nth-child(index/even/odd/equation) 选取每个父元素下的第index个子元素或奇偶元素(index从1算起)
  
b.:first-child   选取每个父元素的第一个子元素    $("ul li:first-child") 选取每个中第一个元素
 
c.:last-child    选取每个父元素的最后一个子元素
 
d.only-child   如果某个元素是它父元素中唯一的子元素,那么将会被匹配。如果父元素中含有其它元素,则不会被匹配。
 
6.表单对象属性过滤选择器
a. :enable/disabled  选取所有可用/不可用元素     $("#form1 :enabled") 选取id 为form1的表单内的所有可用/不可用元素
 
b. :checked    选中所被选中的元素(单选框、多选框) $("input:checked")
 
c. :selected    选取所有被选中的选项元素    $("select option:selected")
 
7. 表单选择器
 :input  :text   :password  :radio   :checkbox  :submit    :image  :reset  :button  :file   :hidden
 
二.插入节点
append()       向每个匹配的元素内部追加内容
appendTo()     将所有匹配的元素追加到指定的元素中  $(A).appendTo(B)将A追加到B
prepend()      向每个匹配的元素内部前置内容   
prependTo()    将所有匹配的元素前置到指定的元素中
after()        在每个匹配的元素之后插入内容
insertAfter()  将所有匹配的元素插入到指定元素的后面
before()       在每个匹配元素之前插入内容
insertBefore() 将所有匹配的元素插入到指定的元素的前面
     
三.detach()和remove()一样,也是从DOM中去掉所有匹配的元素,但detach()不会把匹配的元素从JQuery对象中删除,因而可以在将来再使用这些元素。   与remove()不同的是,所有绑定的事件、附加的数据等都会保存下来。
 
四.clone()复制节点后,被复制的新元素不具有任何行为。clone(true)含义是   复制元素的同时复制元素中所绑定的事件。 
 
五.replaceWith():将所有匹配的元素都替换成指定的HTML或者DOM元素
   replaceAll():颠倒了replaceWith()的用法。
 
六.wrap():将某个节点用其他元素包裹起来。
   wrapAll():将所有匹配的元素用一个元素来包裹。它不同于wrap(),wrap()方法是将所有的元素进行单独的包裹。
   wrapInner():将每一个匹配的元素的子内容(包括文本节点)用其他结构化的标记包裹起来。
七.removeAttr():删除元素属性
   attr():获取属性
 
八.attr("class") 获取元素的class
   addClass()追加样式
   如果给一个元素添加了多个class值,就相当于合并了它们的样式。
   如果有不同的class设定了同一样式属性,则后者覆盖前者。
   removeClass()   $p.removeClass(" high another");同时移除多个
 
九.toggle():主要控制行为上的重复切换,如果元素原来是隐藏的则显示它,            如果原来是显示的则隐藏它。
 
十.hasClass() 判断元素中是否含有某个class,如果有返回true.
 
十一.遍历节点
a.children():取得匹配元素的子元素集合。children()方法只考虑子元素不考虑其他后代元素。
b.next():取得匹配元素后面紧邻的同辈元素。
c.prev():取得匹配元素前面紧邻的同辈元素。
d.siblings():取得匹配元素前后所有的同辈元素(除他自身)。
e.closet():取得最近的匹配元素。首先检查当前元素是否匹配,如果匹配则直接返回元素本身。如果不匹配则            向上查找父元素,逐级向上直到找到匹配选择器的元素。如果什么都没有,返回一个空的JQuery对            象。
f.find()/filter()/nextAll()
 
十二.$(document).ready()方法和window.onload()方法有相似的功能,但是在执行时机方面有区别。               window.onload()是在网页中所有元素完全加载到浏览器后才执行,即JavaScript此时才可以访问页面中       的任何元素。而通过jQuery中的$(documnent).ready()方法注册的事件处理程序,在DOM完全就绪时就可       以被调用。
      JavaScript的onload事件一次只能保存对一个函数的引用,它会自动用后面的函数覆盖前面的函数,因此       不能在现有的行为上添加新的行为。而$(document).ready()方法会在现有的行为上添加新的行为。这些       行为函数会根据注册的顺序依次执行。
十三.jQuery有两个合成事件——hover()方法和toggle()方法。
     hover(enter,leave)方法用于模拟光标悬停事件。当光标移动到元素上时,会触发指定的第一个函数         (enter);当光标移出这个元素时,会触发指定的第二个函数(leave)。
    $(function(){
         $("#panel h5.head").hover(function(){
                 $(this).next().show();
           },function(){
                 $(this).next().hide(); 
          });
     });
     toggle()方法用于模仿鼠标连续单击事件。第一次单击元素时,触发指定的第一个函数;当再次点击同一      元素时,则触发指定的第二个函数。最常用的是切换元素的可见状态。如果元素时可见的,单击切换后则      为隐藏;如果元素时隐藏的,单击切换后则为可见的。
十四.事件冒泡:事件会按照DOM的层次结构像水泡一样不断向上直至顶端。
     事件对象:event
     阻止事件冒泡:stopPropagation()    event.stopPropagation(); 
十五.阻止默认行为:网页中的元素有自己的默认行为,例如单击超链接后会跳转、单击“提交”按钮后表单会      提交,有时需要阻止元素的默认行为。preventDefault()方法来阻止元素的默认行为。return false;可实      现同样功能。