只有想不到,没有做不到。jquery选择器,简直好用的炸裂。。
翻了下百度,感觉还是有很多大神系统的介绍的。所以就抄袭加练习自己也撸一遍,防止链接丢失,所以自己写下来比较安全。
这里丢个系统的jquery选择器参考,w3c的
顺便丢个图片,看着清晰些,图片百度到的:侵删。
1.根据id标签匹配元素:#id
<div id="id">根据id匹配元素</div >
<script type="text/javascript">
$(function(){
$("#id");//通过id获取jq对象
});
</script>
2.根据元素标签名称匹配document里所有元素
<div>这是div标签1</div>
<div>这是div标签2</div>
<p>这是p标签</p>
<script type="text/javascript">
$(function(){
$("div");//获取所有div对象
});
</script>
3. 根据给定的class类名匹配元素:.class
<p class="class1">这是第一个class,第一个p标签</p>
<p class="class2">这是第二个class,第二个p标签</p>
<p class="class2">这是第二个class,第三个p标签</p>
<script type="text/javascript">
$(function(){
$(".class2");//获取class为class2的jq对象
});
</script>
4.匹配所有元素,多用于结合上下文来搜索: *
<p>这是p标签</p>
<div>这是div标签</div>
<script type="text/javascript">
$(function(){
$("*");//获取所有元素
});
</script>
5.多选择器selector1,selector2,selectorN : 指定任意多个选择器,并将匹配到的元素合并到一个结果内:$("select1,select2,selectN")
<p class="p">这是第一个p标签</p>
<div id="div1">这是第一个div标签</div>
<input type="text" name="input"/>
<script type="text/javascript">
$(function(){
$("p,div#div1,input[name=input]");//获取多个选择的结果集对象
});
</script>
6.父类元素下匹配所有的后代元素
<div>
<span>这是第一个span标签</span>
<p>
<span>这是第二个span标签</span>
</p>
</div>
<script type="text/javascript">
$(function(){
$("div span");//div是父级,span是子级,这里是获取div内的span标签。
$("div p");//div是父级,p是子级,这里是获取div内的p标签。
$("div p span");//div是父级,p是子级,span是孙级,这里是获取div内的p标签内的span。
});
</script>
7.父元素下匹配所有的子元素
<div>
<span>这是第一个span标签</span>
<p>
<span>这是第二个span标签</span>
</p>
</div>
<script type="text/javascript">
$(function(){
$("div > span");//获取父元素div下面的span子元素
});
</script>
8.匹配所有紧接在 prev 元素后的 next 元素:prev + next
<div></div>
<p>这是第一个p标签</p>
<p>这是第二个p标签</p>
<script type="text/javascript">
$(function(){
$("div + p");//获取div后面的p元素
});
</script>
9.匹配 prev 元素之后的所有 siblings 同辈元素:prev ~ siblings
<p>这是第一个p标签</p>
<div>
<p>这是第二个p标签</p>
</div>
<p>这是第三个p标签</p>
<script type="text/javascript">
$(function(){
$("div ~ p");//获取div后面的同级别元素
});
</script>
10.获取第一个、最后一个元素: :first、:last
<div>
<p>这是第一个p标签</p>
<p>这是第二个p标签</p>
<p>这是第三个p标签</p>
</div>
<script type="text/javascript">
$(function(){
$("p:first")获取第一个p标签元素
$("p:last")获取最后一个p标签元素
});
</script>
11.去除所有与给定选择器匹配的元素: :not(selector)
<p class="del">这是第一个p标签</p>
<p class="del">这是第二个p标签</p>
<p>这是第三个p标签</p>
<script type="text/javascript">
$(function(){
$("p:not(.del)");//获取所有p标签,同时去除class为del的p标签
});
</script>
12.匹配索引值的元素,从 0 开始计数:
<p>这是索引值为0的p标签</p>
<p>这是索引值为1的p标签</p>
<p>这是索引值为2的p标签</p>
<p>这是索引值为3的p标签</p>
<script type="text/javascript">
$(function(){
$("p:even");//获取索引为偶数的p标签
$("p:odd ");//获取索引为奇数的p标签
$("p:eq(1)");//根据索引的值获取p标签,这里获取所以为1的所有p标签
$("p:gt(1)");//匹配所有大于给定索引值的p标签,这里获取索引大于1的所有p标签
$("p:lt(1)");//匹配所有小于给定索引值的p标签,这里获取索引小于1的所有p标签
});
</script>
13.选择指定语言的所有元素: :lang(language)
<div lang="not">这是lang="not"的div标签</div>
<div lang="en">这是lang="en"的div标签</div>
<div lang="en-us">这是lang="en-us"的div标签</div>
<script type="text/javascript">
$(function(){
$("div:lang(en)");//获取为en语言的所有div标签
});
</script>
14.匹配如 h1, h2, h3之类的标题元素
<p>这是p标签</p>
<h3>这是h3标签</h3>
<h4>这是h4标签</h4>
<script type="text/javascript">
$(function(){
$(":header");//h1-h6都属于标题元素,这里获取所有的标题元素
});
</script>
15.匹配所有正在执行动画效果的元素
<!--对不在执行动画的元素执行一个动画-->
<button id="run">Run</button>
<div style="width:100px;height:100px;border:1px solid #f00;position:absolute;"></div>
<script type="text/javascript">
$(function(){
$("#run").click(function(){
$("div:not(:animated)").animate({left:100+"px"},1000);//给button绑定点击事件,然后div在不是动画效果的时候执行动画效果。这里的 animate()方法执行CSS属性集的自定义动画。
});
});
16.匹配当前获取焦点的元素: :focus
<input type="text" />
<script type="text/javascript">
$(function(){
$("input").focus();//让input自动获取焦点
$("input:focus");//匹配获取焦点的input标签
});
17.选择该文档的根元素,在HTML中,文档的根元素,和$(":root")
选择的元素一样,永远是元素
<script type="text/javascript">
$(":root");//html对象
</script>
18.选择由文档URI的格式化识别码表示的目标元素: :target
例如,给定的URI http://example.com/#foo, $( "p:target" ),将选择<p id="foo">元素。
这个东西并不是特别明白,没用过。
19.匹配包含给定文本的元素::contains(text)
<div>好基友</div>
<div>女朋友</div>
<div>要哪个</div>
<script type="text/javascript">
$(function(){
$("div:contains('女朋友')");//获取文本为女朋友的标签
});
</script>
20.匹配所有不包含子元素或者文本的空元素::empty
<p>这是有内容的p标签</p>
<p></p>
<p>这是有内容的p标签</p>
<p></p>
<script type="text/javascript">
$(function(){
$("p:empty");//获取所有空文本的p标签
});
</script>
21.匹配含有选择器所匹配的元素的元素::has(selector)
<div>这是包含p元素的div标签
<p>这是div标签中的p标签</p>
</div>
<div>这是没有p元素的div标签</div>
<script type="text/javascript">
$(function(){
$("div:has(p)");//获取div中所有的p元素
});
</script>
22.匹配含有子元素或者文本的元素: :parent
<div>
<p>这是div标签中的p标签</p>
</div>
<div>这是有内容的div标签</div>
<div></div>
<script type="text/javascript">
$(function(){
$("div:parent");//获取有子元素的div和有文本内容的div
});
</script>
:hidden
23.匹配所有不可见元素,或者type为hidden的元素:<div style="display:none;">这是隐藏的div标签</div>
<div>这是显示的div标签</div>
<script type="text/javascript">
$(function(){
$("div:hidden");//获取到隐藏的div
});
</script>
24.匹配所有的可见元素: :visible
<div style="display: none;">这是隐藏的div标签</div>
<div>这是显示的div标签</div>
<script type="text/javascript">
$(function(){
$("div:visible");//获取到显示的div
});
</script>
25.匹配包含给定属性的元素:[attribute]
<div class="有类名">这是有类名的div标签</div>
<div>这是没类名的div标签</div>
<script type="text/javascript">
$(function(){
$("div[class]");//获取有类名的div标签
});
</script>
26.匹配给定的属性是某个特定值的元素:[attribute=value]
<div class="myDiv">这是第一个div标签</div>
<div class="not" name="not">这是第二个div标签</div>
<input type="text" />
<script type="text/javascript">
$(function(){
$("div[class='myDiv']");//获取class名称为myDiv的div标签
$("div[name='not']");//获取name名称为not的div标签
$("input[type='text']");//获取type名称为text的input标签
});
</script>
27.匹配所有不含有指定的属性,或者属性不等于特定值的元素:[attribute!=value]
<div class="myDiv">这是第一个div标签</div>
<div class="not" name="not">这是第二个div标签</div>
<script type="text/javascript">
$(function(){
$("div[class!='myDiv']");//获取class名称不等于myDiv的div标签
$("div[name!='not']");//获取name名称不等于not的div标签
});
</script>
28.匹配给定的属性是以某些值开始或者结束的元素: [attribute^=value]
,[attribute$=value]
<div class="myDiv">这是第一个div标签</div>
<div class="not">这是第二个div标签</div>
<div class="myBaby">这是第三个div标签</div>
<div class="youBaby">这是第四个div标签</div>
<script type="text/javascript">
$(function(){
$("div[class^='my']");//获取class名称以my开头的div标签
$("div[class$='Baby']");//获取class名称以Baby结束的div标签
});
</script>
29.匹配给定的属性是以包含某些值的元素:[attribute*=value]
<div class="myDivOne">这是第一个div标签</div>
<div class="not">这是第二个div标签</div>
<div class="myDivTwo">这是第三个div标签</div>
<script type="text/javascript">
$(function(){
$("div[class*='Div']");//获取class名称中包含Div的div标签
});
</script>
30.复合属性选择器,需要同时满足多个条件时使用:[attrSel1][attrSel2][attrSelN]
<div id="myDiv" class="myDivOne">这是第一个div标签</div>
<div class="not">这是第二个div标签</div>
<div class="myDivTwo">这是第三个div标签</div>
<script type="text/javascript">
$(function(){
$("div[id][class*='Div']");//获取id中带有Div的div标签
$("div[id][class$='v']");//获取id中以v结尾的div标签
});
</script>
31.匹配第一个子元素,类似的 :first 匹配第一个元素,而此选择符将为每个父元素匹配一个子元素: :first-child
匹配最后一个子元素,类似的 :last 只匹配最后一个元素,而此选择符将为每个父元素匹配最后一个子元素
<div>
<p>这是第一个div中的第一个p标签</p>
<p>这是第一个div中的第二个p标签</p>
</div>
<div>
<p>这是第二个div中的第一个p标签</p>
<p>这是第二个div中的第二个p标签</p>
</div>
<script type="text/javascript">
$(function(){
$("div p:first-child");//获取每个div内第一个p标签
$("div p:last-child");//获取每个div内最后一个p标签
});
</script>
32.结构化伪类,匹配E的父元素的第一个E类型的子元素: :first-of-type
结构化伪类,匹配E的父元素的最后一个E类型的子元素,大体的意思跟 :first-of-type 差不多,只是一个是第一个元素,一个是最后一个元素::last-of-type
<div>
<div>这是第一个div中的第一个div标签</div>
<p>这是第一个div中的第一个p标签</p>
<p>这是第一个div中的第二个p标签</p>
<div>这是第一个div中的第二个div标签</div>
</div>
<div>
<p>这是第二个div中的第一个p标签</p>
<p>这是第二个div中的第二个p标签</p>
</div>
<script type="text/javascript">
$(function(){
$("p:first-of-type");//获取p标签父类内的第一个p标签。
$("p:last-of-type");//获取p标签父类内的最后一个p标签
});
</script>
33.匹配其父元素下的第N个子或奇偶元素,注意,:eq(index)
是从0开始,而这里的 :nth-child1
的序号是从1开始的,
选择所有他们父元素的第n个子元素,计数从最后一个元素开始到第一个,序号从1开始: nth-last-child
,
选择的所有他们的父级元素的第n个子元素,计数从最后一个元素到第一个,序号从1开始: nth-last-of-type
注意:要有父级元素
<div>
<div>这是第一个div中的第一个div标签</div>
<p>这是第一个div中的第一个p标签</p>
<p>这是第一个div中的第二个p标签</p>
<div>这是第一个div中的第二个div标签</div>
</div>
<div>
<p>这是第二个div中的第一个p标签</p>
<p>这是第二个div中的第二个p标签</p>
</div>
<script type="text/javascript">
$(function(){
$("div p:nth-child(2)");//获取所有div内第二个p标签
$("div p:nth-last-child(1)");//获取所有div内倒数第一个p标签
$("p:nth-last-of-type(1)");//获取p标签父类内倒数第一个p标签
});
</script>
34.选择同属于一个父元素之下,并且标签名相同的子元素中的第n个,序号从1开始: :nth-of-type
<div>
<div>这是div标签</div>
<p>这是第一个p标签</p>
<div>
<p>这是第二个p标签</p>
<p>这是第三个p标签</p>
</div>
<p>这是第四个p标签</p>
</div>
<script type="text/javascript">
$(function(){
$("p:nth-of-type(2)");//获取同级别第二个p标签
});
</script>
35.如果某个元素是父元素中唯一的子元素,那将会被匹配,如果父元素中含有其他元素,那将不会被匹配::only-child
<div>
<div>这是div标签</div>
<p>这是第一个p标签</p>
</div>
<div>
<p>这是第二个p标签</p>
</div>
<script type="text/javascript">
$(function(){
$("p:only-child");//匹配p标签是否是父类中唯一的一个子元素。是这获取,否则不被匹配。
});
</script>
36.选择所有没有兄弟元素,且具有相同的元素名称的元素,如果父元素有相同的元素名称的其他子元素,那么没有元素会被匹配: :only-of-type
<div>
<div>这是div标签</div>
<p>这是第一个p标签</p>
</div>
<div>
<p>这是第二个p标签</p>
<p>这是第三个p标签</p>
</div>
<script type="text/javascript">
$(function(){
$("p:only-of-type");//p标签是兄弟元素中唯一的p元素,则被匹配
});
</script>
37.匹配所有 input, textarea, select 和 button 元素::input
<form>
<input type="text" />
<input type="button" />
<input type="checkbox" />
<input type="password" />
<input type="radio" />
<input type="reset" />
<input type="submit" />
<select><option>Option</option></select>
<textarea></textarea>
<button>Button</button>
</form>
<script type="text/javascript">
$(function(){
$(":input");//获取所有元素为input的标签
});
</script>
38.匹配表单内的一些元素: :text
,:password
,:radio
,:checkbox
,:submit
,:image
,:reset
,:button
,:file
,:enabled
,:disabled
,:checked
,:selected
<form>
<input type="text" />
<input type="password" />
<input type="radio" />
<input type="reset" />
<input type="submit" />
</form>
<script type="text/javascript">
$(function(){
$(":text");匹配所有text的元素框
$(":password");匹配所有密码框
$(":radio");//匹配所有单选按钮
$(":checkbox");匹配所有复选框
$(":submit");//匹配所有提交按钮
$(":image");//匹配所有图片
$(":reset");//匹配所有重置框
$(":button");//匹配所有按钮
$(":file");//匹配所有文件
$(":enabled");//匹配所有可用元素
$(":disabled");//匹配所有不可用元素
$(":checked");// 匹配所有选中的被选中元素(复选框、单选框等,select中的option),对于select元素来说,获取选中推荐使用 :selected
$("select option:selected");//匹配选中的select元素
});
</script>
39.这个方法通常被用在类选择器或者ID选择器中包含一些CSS特殊字符的时候,这个方法基本上与CSS中CSS.escape()
方法类似,唯一的区别是jQuery中的这个方法支持所有浏览器:$.escapeSelector(selector)
<!--对含有#号的ID进行编码-->
<script type="text/javascript">
$(function(){
$.escapeSelector( "#target" ); // "\#target" 将特殊字符转换
});
</script>
很多东西都是边抄袭,边写的,写的时候也加上一些自己的理解。感谢前人栽的树,让我们这些后人好乘凉。但是无论前人的树如何好,那也是别人的树,所以代码一定要多撸,要不然哪里记得住,不能每次写代码都要靠百度。
如有抄袭问题,请即使联系本人,尽快处理。