jQuery -> 获取元素的各种过滤器(filter)

来源:互联网 发布:mac搜索不到蓝牙音箱 编辑:程序博客网 时间:2024/05/21 01:27

通过顺序来选择

顺序选择的过滤器(filter)有
:first
第一个元素
:last
最后一个元素
:even
序号为偶数的元素
:odd
序号为奇数的元素
:eq(n)
序号等于n的元素
:lt(n)
序号小于n的元素
:gt(n)
序号大于n的元素
如果有如下的表格
0even1odd2even3odd4even
html代码如下
<table>
 <tr><td>0</td><td>even</td></tr>
 <tr><td>1</td><td>odd</td></tr>
 <tr><td>2</td><td>even</td></tr>
 <tr><td>3</td><td>odd</td></tr>
 <tr><td>4</td><td>even</td></tr>
</table>
如果需要修改所有序号为偶数的tr的式样,用jQuery则可以非常简单的实现
$("tr:even").addClass('even')
even是在css中定义的式样
table tr.even {    background: #CCC;}
添加even式样后,表格如下所示0even1odd2even3odd4even
jQuery也提供了filter函数
$('ul li').filter(':first');

选取正在执行动画的元素

过滤器是:animated
用法如下
$('div:animated'); // #1$('div:not(div:animated').animate({height:100}); // #2
也可以使用动画过滤器来判断元素是否正在执行动画
var myElem = $('#elem');if (myElem.is(':animated')) {   // do something}

根据包含的内容来选择元素

过滤器:has(), contains()
用法如下
如果要选取包含特定文字的元素,可以使用contains
HTML
<span>Hello Bob!</span>
JS
$('span:contains("Bob")); # contains参数区分大小写,可以不需冒号

通过has来使用selector
$('div:has(p a)');

逆向选择

过滤器 not
not的参数也是一个selector
$('div:not(#content))
当然也可以使用复杂的selector
$('a:not(div.important a, a.nav)');
jQuery也提供了not方法
var anchors = $('a');anchors.click(function() {   anchors.not(this).addClass('not-clicked');});

通过是否可见来选择元素

选择器 hidden, visible
用法如下所示
if ($('#elem').is(':hidden')) {    // Do something conditionally}$('p:visible').hide();

基于属性来选择元素

过滤器
[attr]
是否具有此属性
[attr=val]
attr属性是否等于val
[attr!=val]
attr属性不等于val
[attr^=val]
attr属性以val开头
[attr$=val]
attr属性以val结尾
[attr~=val]
attr属性包含val
[attr]
是否具有此属性
用法
$('a[href="http://google.com"]');
连续使用多个属性过滤器
$('*[title][href]')

根据元素类型来选择

过滤器
jQuery selector syntaxSelects what?:text<input type="text" />:password<input type="password" />:radio<input type="radio" />:checkbox<input type="checkbox" />:submit<input type="submit" />:image<input type="image" />:reset<input type="reset" />:button<input type="button" />:file<input type="file" />:hidden<input type="hidden" />
0 0
原创粉丝点击