jQuery選擇器之屬性篩選選擇器
屬性選擇器讓你可以基于屬性來(lái)定位一個(gè)元素??梢灾恢付ㄔ撛氐哪硞€(gè)屬性,這樣所有使用該屬性而不管它的值,這個(gè)元素都將被定位,也可以更加明確并定位在這些屬性上使用特定值的元素,這就是屬性選擇器展示它們的威力的地方。
描述如下:

瀏覽器支持:
- [att=val]、[att]、[att|=val]、[att~=val] 屬于CSS 2.1規(guī)范
- [ns|attr]、[att^=val]、[att*=val]、[att$=val] 屬于CSS3規(guī)范
- [name!="value"] 屬于jQuery 擴(kuò)展的選擇器
CSS選擇器無(wú)論CSS2.1版本還是CSS3版本,IE7和IE8都支持,webkit、Gecko核心及Opera也都支持,只有IE6以下瀏覽器才不支持
在這么多屬性選擇器中[attr="value"]和[attr*="value"]是最實(shí)用的
[attr="value"]能幫我們定位不同類(lèi)型的元素,特別是表單form元素的操作,比如說(shuō)input[type="text"],input[type="checkbox"]等
[attr*="value"]能在網(wǎng)站中幫助我們匹配不同類(lèi)型的文件
任務(wù)
在代碼編輯器中第31行填寫(xiě)相應(yīng)代碼
$('div[name=p1]')
在代碼編輯器中第36行填寫(xiě)相應(yīng)代碼
$('div[p2]')
在代碼編輯器中第41行填寫(xiě)相應(yīng)代碼
$('div[name|="-"]')
在代碼編輯器中第46行填寫(xiě)相應(yīng)代碼
$('div[name~="a"]')
在代碼編輯器中第69行填寫(xiě)相應(yīng)代碼
$('div[name^=imooc]')
在代碼編輯器中第74行填寫(xiě)相應(yīng)代碼
$('div[name$=imooc]')
在代碼編輯器中第79行填寫(xiě)相應(yīng)代碼
$('div[name*="test"]')
在代碼編輯器中第84行填寫(xiě)相應(yīng)代碼
$('div[testattr!="true"]')
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<title></title>
<link rel="stylesheet" href="imooc.css" type="text/css">
<script src="http://idcbgp.cn/static/lib/jquery/1.9.1/jquery.js"></script>
</head>
<body>
<h2>屬性篩選選擇器</h2>
<h3>[att=val]、[att]、[att|=val]、[att~=val]</h3>
<div class="left" testattr="true" >
<div class="div" testattr="true" name='p1'>
<a>[att=val]</a>
</div>
<div class="div" testattr="true" p2>
<a>[att]</a>
</div>
<div class="div" testattr="true" name="-">
<a>[att|=val]</a>
</div>
<div class="div" testattr="true" name="a b">
<a>[att~=val]</a>
</div>
</div>
<script type="text/javascript">
//查找所有div中,屬性name=p1的div元素
?.css("border", "3px groove red");
</script>
<script type="text/javascript">
//查找所有div中,有屬性p2的div元素
?.css("border", "3px groove blue");
</script>
<script type="text/javascript">
//查找所有div中,有屬性name中的值只包含一個(gè)連字符“-”的div元素
?.css("border", "3px groove #00FF00");
</script>
<script type="text/javascript">
//查找所有div中,有屬性name中的值包含一個(gè)連字符“空”和“a”的div元素
?.css("border", "3px groove #668B8B");
</script>
<h3>[att^=val]、[att*=val]、[att$=val]、[att!=val]</h3>
<div class="left" testattr="true" >
<div class="div" testattr="true" name='imooc-aaorn'>
<a>[att^=val]</a>
</div>
<div class="div" testattr="true" name='aaorn-imooc'>
<a>[att$=val]</a>
</div>
<div class="div" testattr="true" name="attr-test-selector">
<a>[att*=val]</a>
</div>
<div class="div" name="a b">
<a>[att!=val]</a>
</div>
</div>
<script type="text/javascript">
//查找所有div中,屬性name的值是用imooc開(kāi)頭的
?.css("border", "3px groove red");
</script>
<script type="text/javascript">
//查找所有div中,屬性name的值是用imooc結(jié)尾的
?.css("border", "3px groove blue");
</script>
<script type="text/javascript">
//查找所有div中,有屬性name中的值包含一個(gè)test字符串的div元素
?.css("border", "3px groove #00FF00");
</script>
<script type="text/javascript">
//查找所有div中,有屬性testattr中的值沒(méi)有包含"true"的div
?.css("border", "3px groove #668B8B");
</script>
</body>
</html>
.left {
width: auto;
height: 120px;
}
.left div {
width: 100px;
height: 70px;
padding: 5px;
margin: 5px;
float: left;
background: #bbffaa;
border: 1px solid #ccc;
}
.bottom {
width: 800px;
}
.bottom div,
.bottom span {
display: block;
width: 80px;
height: 80px;
margin: 5px;
background: #bbffaa;
float: left;
font-size: 14px;
}
.bottom .small {
width: 60px;
height: 25px;
font-size: 12px;
background: #fab;
}
請(qǐng)驗(yàn)證,完成請(qǐng)求
由于請(qǐng)求次數(shù)過(guò)多,請(qǐng)先驗(yàn)證,完成再次請(qǐng)求