jQuery选择器的灵活用法

瘦欲@ 提交于 2020-01-23 04:46:09

jQuery中选择器很强大,可以根据元素名称、ID、class等多种方式进行选择,

<ul id="id">

  <li>

    <div>

      nihao

      <div class="className">

         china!!!

      </div>

    </div>

  </li>

</ul>       

$("div"),

选则所有div元素

<div>nihao<div class="className">china!!!</div></div>,

<div class="className">china!!!</div>      

$("#id"),

 选择id="id"的元素

<ul id="id"><li><div>nihao<div class="className">china!!!</div></div></li></ul>

$(".className"),  

选择class="className"的所有元素

 <div class="className">china!!!</div>

也可以多个方式一起使用,提高效率,

$("#id  div  .className")  ,       

选择id="id"的元素下面class="className"的所有div

<div class="className">china!!!</div>

亦可以同时选取多个元素进行操作,

$("#id , .className"),           

选择id="id"的元素,以及class="className"的元素

<ul id="id">  <li><div>nihao<div class="className">china!!!</div></div></li></ul>,

<div class="className">china!!!</div>

注意通过$选取获得的是jQuery对象而不是Dom元素,若想转换成Dom元素可以采用get()方法。

层级选择器:

$("#id  div  .className")         

选择父元素下面的所有子元素,这里要选择的是#id 下面的所有的div中的所有class名为className的元素。

$("body>div") 

选择父元素的下一级别且仅为下一级别的子元素。

<div>nihao<div class="className">china!!!</div></div>。

$("prev+next") 

紧跟在prev后面的元素。(找兄弟节点)

$("ul~input")

找出所有与ul同辈的input元素。

其他一些特殊的匹配规则:

<div><p>John</p> Resig</div>
<div>George Martin</div>
<div>Malcom John Sinclair</div>

$("div:contains(George)") ,

匹配包含指定文本的元素,

<div>George Martin</div>
$("div:has(p)"),

匹配包含指定元素"p"的元素,

<div><p>John</p> Resig</div>
$("div:first"),

获取第一个元素,

<div><p>John</p> Resig</div>
$("div:last"),

获取最后一个元素,

<div>Malcom John Sinclair</div>。

$("div:even"),

匹配所有索引为偶数的元素,

<div><p>John</p> Resig</div> ,

<div>Malcom John Sinclair</div>

$("div:odd"),

匹配所有索引为奇数的元素,

<div>George Martin</div>

 

 

基本选择器
$(”#myDiv”) 匹配唯一的具有此id值的元素
$(”div”) 匹配指定名称的所有元素
$(”.myClass”) 匹配具有此class样式值的所有元素
$(”*”) 匹配所有元素
$(”div,span,p.myClass”) 联合所有匹配的选择器
层叠选择器
$(”form input”) 后代选择器,选择ancestor的所有子孙节点
$(”#main > *”) 子选择器,选择parent的所有子节点
$(”label + input”) 临选择器,选择prev的下一个临节点(同级别节点)
$(”#prev ~ div”) 同胞选择器,选择prev的所有同胞节点
基本过滤选择器
$(”tr:first”) 匹配第一个选择的元素
$(”tr:last”) 匹配最后一个选择的元素
$(”input:not(:checked) + span”)从原元素集合中过滤掉匹配selector的所有元素(这里有是一个临选择器)
$(”tr:even”) 匹配集合中偶数位置的所有元素(0开始)
$(”tr:odd”) 匹配集合中奇数位置的所有元素(0开始)
$(”td:eq(2)”) 匹配集合中指定位置的元素(0开始)
$(”td:gt(4)”) 匹配集合中指定位置之后的所有元素(0开始)
$(”td:gl(4)”) 匹配集合中指定位置之前的所有元素(0开始)
$(”:header”) 匹配所有标题
$(”div:animated”) 匹配所有正在运行动画的所有元素
内容过滤选择器
$(”div:contains(’John’)”) 匹配含有指定文本的所有元素
$(”td:empty”) 匹配所有空元素(只含有文本的元素不算空元素)
$(”div:has(p)”) 从原元素集合中再次匹配所有至少含有一个selector的所有元素
$(”td:parent”) 匹配所有不为空的元素(含有文本的元素也算)
$(”div:hidden”) 匹配所有隐藏的元素,也包括表单的隐藏域
$(”div:visible”) 匹配所有可见的元素
属性过滤选择器
$(”div[id]”) 匹配所有具有指定属性的元素
$(”input[name=’newsletter’]”) 匹配所有具有指定属性值的元素
$(”input[name!=’newsletter’]”) 匹配所有不具有指定属性值的元素
$(”input[name^=’news’]”) 匹配所有指定属性值以value开头的元素
$(”input[name$=’letter’]”) 匹配所有指定属性值以value结尾的元素
$(”input[name*=’man’]”) 匹配所有指定属性值含有value字符的元素
$(”input[id][name$=’man’]”) 匹配同时符合多个选择器的所有元素
子元素过滤选择器
$(”ul li:nth-child(2)”),
$(”ul li:nth-child(odd)”), 匹配父元素的第n个子元素
$(”ul li:nth-child(3n + 1)”)
$(”div span:first-child”) 匹配父元素的第1个子元素
$(”div span:last-child”) 匹配父元素的最后1个子元素
$(”div button:only-child”) 匹配父元素的唯一1个子元素
表单元素选择器
$(”:input”) 匹配所有的表单输入元素,包括所有类型的input, textarea, select button
$(”:text”) 匹配所有类型为textinput元素
$(”:password”) 匹配所有类型为passwordinput元素
$(”:radio”) 匹配所有类型为radioinput元素
$(”:checkbox”) 匹配所有类型为checkboxinput元素
$(”:submit”) 匹配所有类型为submitinput元素
$(”:image”) 匹配所有类型为imageinput元素
$(”:reset”) 匹配所有类型为resetinput元素
$(”:button”) 匹配所有类型为buttoninput元素
$(”:file”) 匹配所有类型为fileinput元素
$(”:hidden”) 匹配所有类型为hiddeninput元素或表单的隐藏域
表单元素过滤选择器
$(”:enabled”) 匹配所有可操作的表单元素
$(”:disabled”) 匹配所有不可操作的表单元素
$(”:checked”) 匹配所有已点选的元素
$(”select option:selected”) 匹配所有已选择的元素

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!