JOE个人网站

JOE个人网站,不仅仅是一个网站,更像是一个展现自我的平台,致力于让朋友们都可以
有所感触,有所收获。

选择器

2017-12-19 14:04:55
1、#id ID选择器
   $(function(){
     $('#pid').css('background','blue');  
   });

    <p id='pid'>AAA</p>  //p被选中

2、element 元素选择器
    $(function(){
      $('p').css('background','blue');    //p被选中
    });

    <p>AAA</p>

3、.class 类选择器
    $(function(){
      $('.pid').css('background','blue');   //p被选中
    });

    <p class='pid'>AAA</p>

4、* 通配符
    $(function(){
      $('*').css('background','blue');  
    });

    <p class='pid'>AAA</p>  //选中所有
    <b>CCCCC</b>

5、多个选择器多选,用“,”隔开
    $(function(){
      $('.pid,b,i').css('background','blue');  
    });

    <p class='pid'>AAA</p>
    <b>CCCCC</b>
    <i>xxxx</i>  //p,b,i都被选中

6、关联选择器,用空格隔开
    $(function(){
      $('p b').css('background','blue');  
    });

    <b>AAA</b>
    <p><b>DDD</b></p>  //这个被选中

7、parent > child  parent下面的所有child子元素
    $(function(){
      $('div > p').css('background','blue');  
    });

    <div >
       <p>222</p>
       <p>333</p>
       <b>444</b>
       <p>555</p>    //选中2,3,5
    </div>
    <p>666</p>

8、prev + next 匹配所有紧接在prev后的next元素
    $(function(){
      $('p + b').css('background','blue');  
    });

    <div >
       <p>333</p>
       <b>444</b>
       <p>555</p>
    </div>
    <b>222</b>

9、prev ~ sibling 匹配 prev元素之后的所有 sibling元素
    $(function(){
      $('p ~ b').css('background','blue');  
    });

    <div >
      <p>333</p>
      <b>444</b>
      <i>
       <b>777</b>
      </i>
      <b>666</b>
    </div>
    <b>222</b>    //选中了4,6

10、:first 获取匹配的第一个元素
    $(function(){
      $('p:first').css('background','blue');  
    });

     <p>1</p>  //选中1
     <p>2</p>
     <p>3</p>
     <p>4</p>  

11、:last 获取匹配的最后一个元素,例子同上类似

12、:not(selector)  去除所有与给定选择器匹配的元素
    $(function(){
      $('input:not(:checked)').attr('checked','checked');  
    });

    <form>
       <input type="checkbox" name='sex' value=1 checked="checked" />男
       <input type="checkbox" name="sex" value=0 />女
       <input type="checkbox" name="sex" value=4 />未知
    </form>  //都被选中了

13、:even 偶数
    $(function(){
      $('p:even').css('background','blue');  
    });

     <p>a</p>
     <p>b</p>
     <p>c</p>
     <p>d</p>  //a,c被选中,even是从0开始的

14、:odd 奇数 例子类似上面

15、:eq(index)  匹配一个给定索引值的元素,index从0开始计数
    $(function(){
      $('p:eq(1)').css('background','blue'); 
    });

    <p>a</p>
    <p>b</p>  //b被选择了
    <p>c</p>
    <p>d</p> 

16、:gt(index)  匹配所有大于给定索引值的元素     
    $(function(){
      $('p:gt(1)').css('background','blue'); 
    });

    <p>a</p>
    <p>b</p> 
    <p>c</p> //c被选择了
    <p>d</p> //d被选择了

17、:lt(index)  匹配所有小于给定索引值的元素
    $(function(){
      $('p:gt(1)').css('background','blue'); 
    }); 

    <p>a</p> //a被选择了
    <p>b</p> 
    <p>c</p> 
    <p>d</p> 

18、:header  匹配h家族的标题元素
    $(function(){
      $(':header').css('background','blue');  
    });

    <p>a</p>
    <p>b</p>
    <h1>TTT</h1>  //被选中
    <p>c</p>
    <p>d</p>

19、animated  匹配所有正在执行动画效果的元素(以后讲)

20、focus  触发每一个匹配元素的focus事件(以后讲)

21、:contains(text)  匹配包含给定文本的元素
    $(function(){
      $('p:contains(aa)').css('background','blue');  
    });

    <p>aacc</p>  //被选中
    <p>b</p>
    <p>c</p>
    <p>daat</p>  //被选中

22、:empty  匹配所有不包含子元素或者文本的空元素
    $(function(){
      $('p:empty').html('jquery');  
    });

    <p>aacc</p>
    <p></p>   //被选中,输出jquery
    <p><b></b></p>
    <p></p>  //被选中,输出jquery

23、:has(selector)  匹配含有选择器所匹配的元素的元素
    $(function(){
      $('p:has(b)').html('jquery');  
    });

    <p>aacc</p>
    <p></p>
    <p><b></b></p>  //输出jquery,b标签被替换没了
    <p></p>

24、:parent  匹配所有有子元素或者文本的元素
    $(function(){
     $('p:parent').css('background','blue');  
    });

    <p>aacc</p>  //被选中
    <p></p>
    <p><b></b></p>  //被选中
    <p></p>

25、:hidden  匹配所有不可见元素,或者type为Hidden的元素
    $(function(){
     $('p:hidden').css('background','blue');  
     $('input:hidden').css('background','blue');
    });

    <p style="display:none">aa</p>  //被选中
    <p>bb</p>
    <p><b>cc</b></p>
    <input type="hidden" />  //被选中

26、:visible  匹配所有的可见元素
    $(function(){
     $('p:visible').css('background','blue');  
     $('input:visible').css('background','blue');
    });

    <p style="display:none">aa</p>
    <p>bb</p>  //被选中
    <p><b>cc</b></p>  //被选中
    <input type="hidden" />
    <input type="text" />  //被选中

27、[attribute] 匹配包含给定属性的元素
  $(function(){
    $('p[style]').css({'display':'block','background':'blue'}); 
  });

  <p style="display:none">aa</p>
  <p>bb</p>
  <p><b>cc</b></p>

28、[attribute=value] 匹配给定的属性是某个特定值的元素
  $(function(){
    $('input[name=one]').attr('checked','true'); 
  });

  <form>
    <input type="checkbox" name='one' />A //被选中
    <input type="checkbox" name='one' />B //被选中
    <input type="checkbox" name='two' />C
  </form>

29、[attribute!=value] 匹配所有不含指定的属性,或者属性不等于待定值的元素
  $(function(){
    $('input[name!=one]').attr('checked','true'); 
  });

  <form>
    <input type="checkbox" name='one' />A
    <input type="checkbox" name='one' />B
    <input type="checkbox" name='two' />C //被选中
  </form>

30、[attribute^=value] 匹配给定的属性是以某些值开始的元素
  $(function(){
    $('input[name^=o]').attr('checked','true'); 
  });

  <form>
    <input type="checkbox" name='one' />A //被选中
    <input type="checkbox" name='one' />B //被选中
    <input type="checkbox" name='two' />C
  </form>

31、[attribute$=value] 匹配给定的属性是以某些值结尾的元素
  $(function(){
    $('input[name$=o]').attr('checked','true'); 
  });

  <form>
    <input type="checkbox" name='one' />A
    <input type="checkbox" name='one' />B
    <input type="checkbox" name='two' />C //被选中
  </form>

32、[attribute*=value] 匹配给定的属性是以包含某些值的元素
  $(function(){
    $('input[name*=o]').attr('checked','true'); 
  });

  <form>
    <input type="checkbox" name='one' />A //被选中
    <input type="checkbox" name='one' />B //被选中
    <input type="checkbox" name='two' />C //被选中
  </form>

33、[selector1][selector2][selectorN] 复合属性选择器,需要同时满足多个条件
  $(function(){
    $('input[id][name^=o]').attr('checked','true'); 
  });

  <form>
    <input id='boss' type="checkbox" name='one' />A //被选中
    <input type="checkbox" name='one' />B
    <input type="checkbox" name='two' />C
  </form>

34、:nth-child 匹配其父元素下的第N个子或奇偶元素:':eq(index)' 只匹配一个元素,而这个将为每一个父元素匹配子元素。:nth-child从1开始的,而:eq()是从0算起的!
  可以使用:<br>nth-child(even)<br>:nth-child(odd)<br>:nth-child(3n)<br>:nth-child(2)<br>:nth-child(3n+1)<br>:nth-child(3n+2)

  $(function(){
    $('ul li:nth-child(2)').css('background','blue'); 
  });

  <ul>
    <li>A</li>
    <li>B</li> //被选中
    <li>C</li>
  </ul>
  <ul>
    <li>D</li>
    <li>E</li> //被选中
    <li>F</li>
  </ul>

35、:first-child 匹配第一个子元素:':first' 只匹配一个元素,而此选择符将为每个父元素匹配一个子元素
  $(function(){
    $('ul li:first-child').css('background','blue'); 
  });

  <ul>
    <li>A</li> //被选中
    <li>B</li>
    <li>C</li>
  </ul>
  <ul>
    <li>D</li> //被选中
    <li>E</li>
    <li>F</li>
  </ul>

36、:last-child 匹配最后一个子元素:':last'只匹配一个元素,而此选择符将为每个父元素匹配一个子元素
  $(function(){
    $('ul li:last-child').css('background','blue'); 
  });

  <ul>
    <li>A</li>
    <li>B</li>
    <li>C</li> //被选中
  </ul>
  <ul>
    <li>D</li>
    <li>E</li>
    <li>F</li> //被选中
  </ul>

37、only-child 如果某个元素是父元素中唯一的子元素,那将会被匹配
  $(function(){
    $('ul li:only-child').css('background','blue'); 
  });

  <ul>
    <li>A</li>
    <li>B</li>
    <li>C</li>
  </ul>
  <ul>
    <li>D</li> //被选中
  </ul>

38、:input 匹配所有 input,textarea,select 和button 元素
    $(function(){
      $(':input').css('background','blue');  
    });

  <form>
    <input type="button" value="Input Button"/>
    <input type="checkbox" />
    <input type="file" />
    <input type="hidden" />
    <input type="image" />
    <input type="password" />
    <input type="radio" />
    <input type="reset" />
    <input type="submit" />
    <input type="text" />
    <select><option>Option</option></select>
    <textarea></textarea>
    <button>Button</button>
  </form>

39、:text  匹配所有的单行文本框

    上面的例子中,$(':text').css('background','blue');就只有type="text"会被选中



40、:password  匹配所有 密码框
    上面的例子中,$(':password').css('background','blue');就只有type="password"会被选中

41、:radio  匹配所有单选按钮
    上面的例子中,$(':radio').css('background','blue');就只有type="radio"会被选中

42、:checkbox 匹配所有复选框
    上面的例子中,$(':checkbox').css('background','blue');就只有type="checkbox"会被选中

43、:submit  匹配所有提交按钮
    上面的例子中,$(':submit').css('background','blue');就只有type="submit"会被选中

44、:image  匹配所有图像域
    上面的例子中,$(':image').css('background','blue');就只有type="image"会被选中

45、:reset  匹配所有重置按钮
    上面的例子中,$(':reset').css('background','blue');就只有type="reset"会被选中

46、:button  匹配所有按钮
    上面的例子中,$(':button').css('background','blue');就只有type="button"会被选中

47、:file  匹配所有文件域
    上面的例子中,$(':file').css('background','blue');就只有type="file"会被选中

48、:enabled  匹配所有可用元素
  $(function(){
    $(':enabled').css('background','blue');     
  });

  <form>
    <input name="one" disabled="disabled" value="11" />
    <input name="id" />  //被选中
  </form>

49、:disabled 匹配所有不可用元素
    上例子中,换成$(':disabled').css('background','blue');就是第一个Input被选中了

50、:checked  匹配所有选中的被选中元素(复选框、单行框等,不包括select中的option)
  $(function(){
    $('input:checked').css('background','blue');     
  });

  <form>
    <input type="checkbox" name="newsletter" checked="checked" value="Daily" />  //被选中
    <input type="checkbox" name="newsletter" value="Weekly" />
    <input type="checkbox" name="newsletter" checked="checked" value="Monthly" />  //被选中
  </form>

51、:selected  匹配所有选中的option元素
  $(function(){
    $('select option:selected').css('background','blue');     
  });

  <select>
    <option value="1">Flowers</option>
    <option value="2" selected="selected">Gardens</option>  //被选中
    <option value="3">Trees</option>
  </select>