jquery各种选择器

32 篇文章 1 订阅
26 篇文章 0 订阅
只有想不到,没有做不到。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>
23.匹配所有不可见元素,或者type为hidden的元素::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>

很多东西都是边抄袭,边写的,写的时候也加上一些自己的理解。感谢前人栽的树,让我们这些后人好乘凉。但是无论前人的树如何好,那也是别人的树,所以代码一定要多撸,要不然哪里记得住,不能每次写代码都要靠百度。
如有抄袭问题,请即使联系本人,尽快处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值