前端开发利器jQuery-筛选器之过滤

2,877次阅读
没有评论

 

前端开发利器jQuery-筛选器之过滤

jQuery筛选器之过滤

筛选器 描述
$("SET").eq(index/-index); 获取当前链式操作中第N个jQuery对象,当参数大于等于0时为正向选取,当参数为负数时为反向选取
$("SET").first(); 获取匹配到的第一个元素
$("SET").last(); 获取最后个元素
$("this").hasClass(class); 检查当前的元素是否含有某个特定的类,如果有,则返回true
$("SET").filter(expr/obj/ele/fn); 筛选出与指定表达式匹配的元素集合
$("SET").is(expr/obj/ele/fn); 根据选择器、DOM元素或 jQuery 对象来检测匹配元素集合,如果其中至少有一个元素符合这个给定的表达式就返回true
$("SET").has(expr/ele); 保留包含特定后代的元素,去掉那些不含有指定后代的元素
$("SET").not(expr/ele/fn); 删除与指定表达式匹配的元素
$("SET").slice(start, [end]); 选取一个匹配的子集

jQuery筛选器之过滤示例

  • $(“SET”).eq(index/-index);

获取匹配的第二个元素

HTML代码:

1
2
<p>This is just a test.</p>
<p>So is this</p>

jQuery代码:

1
$("p").eq(1);

结果:

1
[ <p> So is this</p> ]

获取匹配的第二个元素

HTML代码:

1
2
<p>This is just a test.</p>
<p> So is this</p>

jQuery代码:

1
$("p").eq(-2);

结果:

1
[ <p> This is just a test.</p> ]
  • $("SET").first();

获取匹配的第一个元素

HTML代码:

1
2
3
4
5
6
7
<ul>
    <li>list item 1</li>
    <li>list item 2</li>
    <li>list item 3</li>
    <li>list item 4</li>
    <li>list item 5</li>
</ul>

jQuery代码:

1
$('li').first();

结果:

1
[ <li>list item 1</li> ]
  • $("SET").last();

获取匹配的最后个元素

HTML代码:

1
2
3
4
5
6
7
<ul>
    <li>list item 1</li>
    <li>list item 2</li>
    <li>list item 3</li>
    <li>list item 4</li>
    <li>list item 5</li>
</ul>

jQuery代码:

1
$('li').last();

结果:

1
[ <li>list item 5</li> ]
  • $("this").hasClass(class);

给包含有某个类的元素进行一个动画。

HTML代码:

1
<div class="protected"></div><div></div>

jQuery代码:

1
2
3
4
5
6
7
8
9
$("div").click(function(){
  if ( $(this).hasClass("protected") )
    $(this)
      .animate({ left: -10 })
      .animate({ left: 10 })
      .animate({ left: -10 })
      .animate({ left: 10 })
      .animate({ left: 0 });
});
  • $("SET").filter(expr|obj|ele|fn);

filter参数说明

参数 描述
expr 字符串值,包含供匹配当前元素集合的选择器表达式
jQuery object 现有的jQuery对象,以匹配当前的元素
element 一个用于匹配元素的DOM元素
function(index) 一个函数用来作为测试元素的集合。它接受一个参数index,这是元素在jQuery集合的索引。在函数,this指的是当前的DOM元素。

保留带有select类的元素

HTML代码:

1
<p>Hello</p><p>Hello Again</p><p class="selected">And Again</p>

jQuery代码:

1
$("p").filter(".selected");

结果:

1
[ <p class="selected">And Again</p> ]

保留第一个以及带有select类的元素

HTML代码:

1
<p>Hello</p><p>Hello Again</p><p class="selected">And Again</p>

jQuery代码:

1
$("p").filter(".selected, :first");

结果:

1
[ <p>Hello</p>, <p class="selected">And Again</p> ]

保留子元素中不含有ol的元素。

HTML代码:

1
<p><ol><li>Hello</li></ol></p><p>How are you?</p>

jQuery代码:

1
2
3
$("p").filter(function(index) {
  return $("ol", this).length == 0;
});

结果:

1
[ <p>How are you?</p> ]
  • $("SET").is(expr/obj/ele/fn);

如果没有元素符合,或者表达式无效,都返回'false'。 注意:在jQuery 1.3中才对所有表达式提供了支持。在先前版本中,如果提供了复杂的表达式,比如层级选择器(比如 + , ~ 和 > ),始终会返回true

is参数说明

参数 描述
expr 字符串值,包含供匹配当前元素集合的选择器表达式
jQuery object 现有的jQuery对象,以匹配当前的元素
element 一个用于匹配元素的DOM元素
function(index) 一个函数用来作为测试元素的集合。它接受一个参数index,这是元素在jQuery集合的索引。在函数, this指的是当前的DOM元素

由于input元素的父元素是一个表单元素,所以返回true。

HTML代码:

1
<form><input type="checkbox" /></form>

jQuery代码:

1
$("input[type='checkbox']").parent().is("form");

结果:

1
true
  • $("SET").has(expr|ele);

给含有ul的li加上背景色

HTML代码:

1
2
3
4
5
6
7
8
9
10
11
<ul>
  <li>list item 1</li>
  <li>list item 2
    <ul>
      <li>list item 2-a</li>
      <li>list item 2-b</li>
    </ul>
  </li>
  <li>list item 3</li>
  <li>list item 4</li>
</ul>

jQuery代码:

1
$('li').has('ul').css('background-color', 'red');
  • $("SET").not(expr/ele/fn);

not参数

参数 描述
expr 一个选择器字符串
element 一个DOM元素
function(index) 一个用来检查集合中每个元素的函数。this是当前的元素

从p元素中删除带有 select 的ID的元素

HTML代码:

1
<p>Hello</p><p id="selected">Hello Again</p>

jQuery代码:

1
$("p").not( $("#selected")[0] );

结果:

1
[ <p>Hello</p> ]
  • $("SET").slice(start, [end]);
参数 描述
start 开始选取子集的位置。第一个元素是0.如果是负数,则可以从集合的尾部开始选起
end 结束选取自己的位置,如果不指定,则就是本身的结尾

HTML代码:

1
<p>Hello</p><p>cruel</p><p>World</p>

选择前两个p元素

jQuery 代码:

1
$("p").slice(0, 2).wrapInner("<b></b>");

结果:

1
[ <p><b>Hello</b></p>,<p><b>cruel</b></p> ]

只选取第二个p元素

jQuery代码:

1
$("p").slice(1, 2).wrapInner("<b></b>");

结果:

1
[ <p><b>cruel</b></p> ]

只选取第二第三个p元素

jQuery代码:

1
$("p").slice(1).wrapInner("<b></b>");

结果:

1
[ <p><b>cruel</b></p>, <p><b>World</b></p> ]

选取第最后一个p元素

jQuery代码:

1
$("p").slice(-1).wrapInner("<b></b>");

结果:

1
[ <p><b>World</b></p> ]
admin
版权声明:本站原创文章,由 admin 2016-07-16发表,共计3505字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)