If you don't go after what you want, you'll never have it. If you don't step forward, you're always in the same place.

锋利Jquery第十天 ----Jquery 属性过滤选择器

锋利Jquery第十天 ----Jquery 属性过滤选择器


匹配包含给定属性的元素 [attribute]

匹配给定的属性是某个特定值的元素 [attribute = value]
匹配所有含有指定的属性,但属性不等于特定值的元素 [attribute != value]

匹配给定的属性是以某些值开始的元素 [attribute^=value]
匹配给定的属性是以某些值结尾的元素 [attribute$=value]

匹配给定的属性是以包含某些值的元素 [attribute*=value]


<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>属性过滤选择器</title>
<script type="text/javascript" src="jquery-1.3.1.js"></script>
<script type="text/javascript">
$(document).ready(function(){
 //属性过滤选择器是通过元素的属性来获取相应的元素
  //改变含有属性title的div元素的背景色
  $("div[title]").css("background","red");

[attribute]   匹配包含给定属性的元素。返回值 Array<Element>

参数 attribute (String) : 属性名

示例
查找所有含有 id 属性的 div 元素

HTML 代码:

<div>
  <p>Hello!</p>
</div>
<div id="test2"></div>
jQuery 代码:

$("div[id]")
结果:[ <div id="test2"></div> ]


  //改变属性title 的值等于test,的div 元素的背景色
  $("div[title=test]").css("background","yellow");

[attribute=value]
匹配给定的属性是某个特定值的元素
返回值 Array<Element>

参数 attribute (String) : 属性名
         value (String) : 属性值。引号在大多数情况下是可选的。但在遇到诸如属性值包含"]"时,用以避免冲突。

示例
查找所有 name 属性是 newsletter 的 input 元素

HTML 代码:
<input type="checkbox" name="newsletter" value="Hot Fuzz" />
<input type="checkbox" name="newsletter" value="Cold Fusion" />
<input type="checkbox" name="accept" value="Evil Plans" />
jQuery 代码:

$("input[name='newsletter']").attr("checked", true);
结果:
[ <input type="checkbox" name="newsletter" value="Hot Fuzz" checked="true" />, <input type="checkbox" name="newsletter" value="Cold Fusion" checked="true" /> ]


  //改变属性title 的值不等于test,的div 元素的背景色
  $("div[title!=test]").css("background","blue");

[attribute!=value]
匹配所有含有指定的属性,但属性不等于特定值的元素。
在jQuery 1.3之前是这样的:"匹配那些没有指定的属性的元素,或者指定的属性不等于特定值的元素。",这等价于:not([attr=value])

返回值 Array<Element>
参数  attribute (String) : 属性名
          value (String) : 属性值。引号在大多数情况下是可选的。但在遇到诸如属性值包含"]"时,用以避免冲突。

示例
查找所有 name 属性不是 newsletter 的 input 元素

HTML 代码:

<input type="checkbox" name="newsletter" value="Hot Fuzz" />
<input type="checkbox" name="newsletter" value="Cold Fusion" />
<input type="checkbox" name="accept" value="Evil Plans" />
jQuery 代码:

$("input[name!='newsletter']").attr("checked", true);
结果:
[ <input type="checkbox" name="accept" value="Evil Plans" checked="true" /> ]


  //改变属性值title以te开始div 元素
  $("div[title^=te]").css("background","green");

[attribute^=value]
匹配给定的属性是以某些值开始的元素
返回值 Array<Element>
参数 attribute (String) : 属性名
        value ( String) : 属性值。引号在大多数情况下是可选的。但在遇到诸如属性值包含"]"时,用以避免冲突。
示例
查找所有 name 以 'news' 开始的 input 元素

HTML 代码:

<input name="newsletter" />
<input name="milkman" />
<input name="newsboy" />
jQuery 代码:

$("input[name^='news']")
结果:

[ <input name="newsletter" />, <input name="newsboy" /> ]


   //改变属性值title以te结束div 元素
  $("div[title$=sst]").css("background","#bbeeff");


   //改变属性值title包含es的div 元素
  $("div[title*=es]").css("background","#ddaaff");

[attribute$=value]
匹配给定的属性是以某些值结尾的元素
返回值
Array<Element>
参数
attribute (String) : 属性名
value (String) : 属性值。引号在大多数情况下是可选的。但在遇到诸如属性值包含"]"时,用以避免冲突。

示例
查找所有 name 以 'letter' 结尾的 input 元素

HTML 代码:
<input name="newsletter" />
<input name="milkman" />
<input name="jobletter" />
jQuery 代码:

$("input[name$='letter']")
结果:
[ <input name="newsletter" />, <input name="jobletter" /> ]


   //改变元素含有id属性,并且属性值title包含es的div 元素
  $("div[id][title*=es]").css("background","red");
 

[attribute*=value]
匹配给定的属性是以包含某些值的元素

返回值
Array<Element>

参数
attribute (String) : 属性名
value (String) : 属性值。引号在大多数情况下是可选的。但在遇到诸如属性值包含"]"时,用以避免冲突。

示例
查找所有 name 包含 'man' 的 input 元素

HTML 代码:
<input name="man-news" />
<input name="milkman" />
<input name="letterman2" />
<input name="newmilk" />
jQuery 代码:

$("input[name*='man']")
结果:

[ <input name="man-news" />, <input name="milkman" />, <input name="letterman2" /> ]


});
</script>
<style type="text/css">
div,span,p
{
 width:140px; height:140px;
 margin:5px;
 background:#aaa;
    border: solid 1px #000;
    float:left;
    font-size:17px;
    font-family:Verdana;
 }
div.mini
{
 width:55px; height:55px;
    background-color:#aaa;
    font-size:12px;
 }
div.hide
{
 display:none
 }
</style>
</head>

<body>
<h3 align="center">过滤选择器</h3>
 
 <div class="one" id="one">
    class等于one,id等于one
    <div class="mini">class等于mini</div>
 </div>
 <div class="one" id="two" title="test">
     class="one" id="two" title="test" 的DIV
     <div class="mini" title="ohter">class为mini,title="ohter"</div>
     <div class="mini" title="test">class为mini,title="test"</div>
 </div>
 <div class="one">
     <div class="mini">class等于mini</div>
     <div class="mini">class等于mini</div>
     <div class="mini">class等于mini</div>
     <div class="mini"></div>
 </div>
 <div class="mini">
      <div class="mini">class等于mini</div>
      <div class="mini">class等于mini</div>
      <div class="mini">class等于mini</div>
      <div class="mini" title="tesst">class等于mini,title="tesst"</div>
 </div>
 <div style="display:none" class="one">style="display:none" class="one"的div</div>
 <div class="hide">class="hide"的div</div>
 <div>包含input的type为"hidden"的div<input type="hidden" size="8" /></div>
 
 <span id="mover">正在执行动画的span元素</span>
 <div><p>含有p元素的div</p></div> 

</body>
</html>

posted @ 2012-08-15 17:00  BlackAnts  阅读(1120)  评论(0编辑  收藏  举报