在web应用程序中,大部分的客户端操作都是基于对象的操作,要操作对象就必须先获取对象,jquery提供了强大的选择器让我们获取对象。将jquery选择器分为两大部分:选择对象和筛选条件。选择对象表示要获取什么对象,筛选条件是对获取的对象进行筛选,最终留下符合某些特征的对象。
1.选择对象
1).基本
·#id 根据给定的id匹配一个元素。例如:$(#id)
·element 根据给定的元素名匹配所有元素。例如:$(p)
·.class 根据给定的类匹配元素。例如:$(.style1);
·* 匹配所有元素。例如:$(*)
·selector1,selector2,selectorn 将每一个选择器匹配到的元素合并后一起返回。例如:$(#id,p,.style1)
2).表单
·:button 匹配所有按钮。例如:$(:button)
·:checkbox 匹配所有复选框。例如:$(:checkbox)
·:file 匹配所有文件域。例如:$(:file)
·:hidden 匹配所有不可见元素,或者type为hidden的元素。例如:$(input:hidden)
·:image 匹配所有图像域。例如:$(:image)
·:input 匹配所有 input, textarea, select 和 button 元素。例如:$(:input)
·:password 匹配所有密码框。例如:$(:password)
·:radio 匹配所有单选按钮。例如:$(:radio)
·:reset 匹配所有重置按钮。例如:$(:reset)
·:submit 匹配所有提交按钮。例如:$(:submit)
·:text 匹配所有的单行文本框。例如:$(:text)
·:header 匹配如 h1, h2, h3之类的标题元素。例如:$(:header).css(background, #eee);
2.筛选条件
1).属性筛选
·[attribute*=value] 匹配给定的属性是以包含某些值的元素。例如:$(input[name*='man')
·[attribute!=value] 匹配所有含有指定的属性,但属性不等于特定值的元素。例如:$(input[name!='man');
·[attribute$=value] 匹配给定的属性是以某些值结尾的元素。例如:$(input[name$='man'])
·[attribute=value] 匹配给定的属性是某个特定值的元素。例如:$(input[name='man']);
·[attribute] 匹配包含给定属性的元素。例如:$(p[id])
·[attribute^=value] 匹配给定的属性是以某些值开始的元素。例如:$(input[name^='man'])
·[selector1][selector2][selectorn] 同时满足多个条件。例如:$(input[id][name$='man'])
·:hidden 匹配所有的不可见元素。例如:$(tr:hidden)
·:visible 匹配所有的可见元素。例如:$(tr:visible)
·:checked 匹配所有选中的被选中元素(复选框、单选框等,不包括select中的option)。例如:$(input:checked)
·:disabled 匹配所有不可用元素。例如:$(input:disabled)
·:enabled 匹配所有可用元素。例如:$(input:enabled)
·:selected 匹配所有选中的option元素。例如:$(select option:selected)
2).内容筛选
·:contains(text) 匹配包含给定文本的元素。例如:$(p:contains('john'))
·:empty 匹配所有不包含子元素或者文本的空元素。例如:$(td:empty)
·:has(selector) 匹配含有选择器所匹配的元素的元素。例如:$(p:has(p));
·:parent 匹配含有子元素或者文本的元素。例如:$(td:parent)
3).层级筛选
·ancestor descendant 在给定的祖先元素下匹配所有的后代元素。例如:$(form input)
·parent > child 在给定的父元素下匹配所有的子元素。例如:$(form > input)
·prev + next 匹配所有紧接在 prev 元素后的 next 元素。例如:$(label + input)
·prev ~ siblings 匹配 prev 元素之后的所有 siblings 元素。例如:$(form ~ input)
·:first-child 匹配第一个子元素。例如:$(ul li:first-child)
·:last-child 匹配最后一个子元素。例如:$(ul li:last-child)
·:nth-child(index/even/odd/equation) 匹配其父元素下的第n个子或奇偶元素。例如:$(ul li:nth-child(2))
·:only-child 如果某个元素是父元素中唯一的子元素,那将会被匹配。例如:$(ul li:only-child)
4).方法筛选
·:animated 匹配所有正在执行动画效果的元素。例如:$(p:animated);
·:eq(index) 匹配一个给定索引值的元素。例如:$(tr:eq(1))
·:even 匹配所有索引值为偶数的元素,从 0 开始计数。例如:$(tr:even)
·:first 匹配找到的第一个元素。例如:$(tr:first)
·:gt(index) 匹配所有大于给定索引值的元素,从 0 开始计数。例如:$(tr:gt(0))
·:last 匹配找到的最后一个元素。例如:$(tr:last)
·:lt(index) 匹配所有小于给定索引值的元素。例如:$(tr:lt(2))
·:not(selector) 去除所有与给定选择器匹配的元素。例如:$(input:not(:checked))
·:odd 匹配所有索引值为奇数的元素,从 0 开始计数。例如:$(tr:odd)
jquery中用于筛选的方法总结
1.add()
用于链接分别与两个表达式匹配的元素结果集。
[javascript] view plaincopy
1. $(p).add(div);
匹配p和div,即查找所有的p和div都放到匹配元素中。
[javascript] view plaincopy
1. $(p div);
实现相同的功能。
2.andself()
对于筛选或查找后的元素,加入先前所选元素。
[javascript] view plaincopy
1. $(div).find(span).andself().addclass(test);
3.end()
回到最近的一个“破坏性”操作之前,即将匹配的元素列表变为前一次匹配的状态。
所谓的“破坏性”操作是指对于获取的jquery元素,做了进一步的匹配,例如find,add,children,not,prev等等。
4.filter()
参数为一个或多个表达式时,就是过滤的作用。
当参数是function时,返回的为false元素被删除,否则保留。
[javascript] view plaincopy
1. $(p).filter(function(){
2. return $(ol,this).length==0;
3. });
取到的是<p>中不不含有ol的元素。
5.map()
将一组元素转换成其他数组。
1. $(p).append($(input).map(function(){
2. return $(this).value();
3. }).get().join(,));
将所有input标签的value组成一个以“,”连接的字符串并追加到<p>元素中。
6.children()
得到一个包含匹配的元素集合中每一个元素的所有子元素的元素集合,不考虑子元素的子元素。
7.closest()和parents()
closest() parents()
起始匹配元素 当前元素开始匹配 父级元素开始匹配
匹配结束元素 直到发现匹配元素 一直到根元素
返回结果 0或1个 0或1或多个
8.next()、nextall()和nextuntil()
第一个,取得一个包含匹配的元素集合中每一个元素紧邻的后面同辈元素的元素集合。
第二个,取得当前匹配元素后面的所有同辈元素。
第三个,查找当前元素之后所有的同辈元素,直到遇到传入的那个参数为止。
9.parent()
取得一个包含着所有匹配元素的唯一父元素的元素集合。
10.prev()、prevall()和prevuntil()
同next一样,仅仅是取得前面的元素。
11.siblings()
取得所选元素的所有同辈元素集合,不包括自己。
但加上andself()方法即可以取到自己以及自己的同辈。
以上就是jquery筛选器实例用法总结的详细内容。