您的位置:首页 > Web前端 > JQuery

jQuery学习之旅 Item2 选择器【二】

2015-10-25 21:23 323 查看
这里接着上一个Item1 把jQuery的选择器讲完。主要有:属性过滤器和子元素过滤器

点击”名称”会跳转到此方法的jQuery官方说明文档.

5. 属性过滤器 Attribute Filters

名称说明举例
[attribute]匹配包含给定属性的元素查找所有含有 id 属性的 div 元素:

$(“div[id]”)
[attribute=value]匹配给定的属性是某个特定值的元素查找所有 name 属性是 newsletter 的 input 元素:

$(“input[name=’newsletter’]”).attr(“checked”, true);
[attribute!=value]匹配给定的属性是不包含某个特定值的元素查找所有 name 属性不是 newsletter 的 input 元素:

$(“input[name!=’newsletter’]”).attr(“checked”, true);
[attribute^=value]匹配给定的属性是以某些值开始的元素$(“input[name^=’news’]”)
[attribute$=value]匹配给定的属性是以某些值结尾的元素查找所有 name 以 ‘letter’ 结尾的 input 元素:

$ (“input[name =’letter’]”)
[attribute*=value]匹配给定的属性是以包含某些值的元素

查找所有 name 包含 ‘man’ 的 input 元素:

$ (“input[name * =’man’]”)

[attributeFilter1][attributeFilter2][attributeFilterN]复合属性选择器,需要同时满足多个条件时使用。找到所有含有 id 属性,并且它的 name 属性是以 man 结尾的:

$ (“input[id][name =’man’]”)
<input  type=”text”  name=”username”  value=”zhangsan” />


$ (“[name]”) —— 找到有name属性的元素

$(“[value=tom]”) —— 找到有value属性的元素,并且value的值等于tom

$(“[value^=to]”) —— 找到有value属性的元素,并且value的值是以to开始

$(“[value$=ab]”) —— 找到有value属性的元素,并且value的值是以ab结尾

$(“[value*=ab]”) —— 找到有value属性的元素,并且value的值里边包含ab信息

$(“[value!=ab]”)

①找到有value属性的元素,并且value的值不等于ab

②或者是没有value属性元素

<input value=”123”><input  value=”ab”>


$([name][class=^a][value!=123] ) —— 符合选择器,多个条件同时满足(并且,交集)

<script>
function f1(){
//$("[class]").css('color','red');//有class属性

//$("[id=hello]").css("color","blue");//id=hello的元素

//$("[class^=app]").css("color",'blue');//class内容以app开始

//$("[class$=e]").css("color","red"); //class内容以e结尾

//$("[class*=p]").css("color","red"); //class内容包含p

//class内容不为app123 或 没有class属性的
//$("[class!=app123]").css("color","blue");

//有id属性和class属性并且class不等于app123
//$("[id][class!=app123][class]").css("color",'blue');

//获得input元素,并且有class属性,内容以app开始
$("[class=app123]input").css("color",'blue');
//$("input:eq(2)").css("color",'blue');
}

</script>

<body>
<div class="apple">apple</div>
<div class="app123">banana</div>

<input type="text" value="tom" id="hello" class="peare"><br />
<input type="text" value="jack" class="app123"><br />
<input type="text" value="linken" class="apple"><br />

<input type="button" value="触发" onclick="f1()">
<p>I am bread</p>
</body>


6. 子元素过滤器 Child Filters

名称说明举例
:nth-child(index/even/odd/equation)匹配其父元素下的第N个子或奇偶元素

‘:eq(index)’ 只匹配一个元素,而这个将为每一个父元素匹配子元素。:nth-child从1开始的,而:eq()是从0算起的!

可以使用:

nth-child(even)

:nth-child(odd)

:nth-child(3n)

:nth-child(2)

:nth-child(3n+1)

:nth-child(3n+2)

在每个 ul 查找第 2 个li:

$(“ul li:nth-child(2)”)
:first-child匹配第一个子元素

‘:first’ 只匹配一个元素,而此选择符将为每个父元素匹配一个子元素

在每个 ul 中查找第一个 li:

$(“ul li:first-child”)
:last-child匹配最后一个子元素

‘:last’只匹配一个元素,而此选择符将为每个父元素匹配一个子元素

在每个 ul 中查找最后一个 li:

$(“ul li:last-child”)
:only-child如果某个元素是父元素中唯一的子元素,那将会被匹配

如果父元素中含有其他元素,那将不会被匹配。

在 ul 中查找是唯一子元素的 li:

$(“ul li:only-child”)
1 :nth-child(index/even/odd)

匹配其父元素下的第N个子或奇偶元素

‘:eq(index)’ 只匹配一个元素,

而这个将为每一个父元素匹配子元素。

:nth-child从1开始的,而:eq()是从0算起的!

2 :first-child

匹配其父元素下的第一个子元素

3 :last-child

匹配其父元素下的最后一个子元素

4 :only-child

如果某个元素是父元素中唯一的子元素,那将会被匹配

容易与“简单过滤选择器”混淆

:first :eq() :last

<script>
function f1(){
//把全部的li汇合到一起找到第一个
$("li:first").css("color","red");  //一个结果

//first-child匹配其父元素下的第一个子元素
$("li:first-child").css("color","blue"); //两个结果
$("li:last-child").css("color","red");//两个结果

$("li:nth-child(2)").css("background-color","lightblue"); //两个结果
$("li:nth-child(even)").css("background-color","lightblue");
$("li:nth-child(odd)").css("background-color","lightblue");

//找到其父元素只有一个子元素的元素
$("li:only-child").css('color','red');
}
</script>

<body>
<ul>
<li>四</li>
<li>大</li>
<li>家</li>
<li>族</li>
</ul>
<ul>
<li>乔</li>
<li>家</li>
<li>大</li>
<li>院</li>
</ul>
<ul>
<li>老大</li>
</ul>

<input type="button" value="触发" onclick="f1()">
</body>


子元素选择器 和 简单过滤选择器使用 区别:

简单过滤选择器使用

a) 把全部元素放到一起统一使用

b) 下标从0开始计算

2.子元素选择器

a) 每个元素的父元素看成独立的单位进行运算

b) 下标从1开始计算
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: