Jquery中的has、find、filter方法区别
2016-06-07 23:36
761 查看
find方法
find返回的是匹配结果集,作用于后代$(‘li’).find(‘.a’).css(‘background-color’, ‘red’);在li下面查找元素是否有class=a的元素,返回class=a的元素的集合。比如如下例子:<!DOCTYPE html> <html> <head> <script type="text/javascript" src="/jquery/jquery.js"></script> </head> <body> <p><span>Hello</span>, how are you?</p> <p>Me? I'm <span>good</span>.</p> <script> $("p").find("span").css('color','red'); </script> </body> </html>
Hello, how are you?
Me? I’m good.
find方法返回的结果集是后面的结果集。即结果集。
has方法
has返回的是赛选结果集,作用于后代 has判断是否有,如果有则选中$(‘li’).has(‘span’).css(‘background-color’, ‘red’);在li下面查找元素是否有has下面的元素,如果有,则返回赛选的集合。即返回所有满足条件的li(li下面有span的li),例子:
<!DOCTYPE html> <html> <head> <style> .full { border: 1px solid red; } </style> <script type="text/javascript" src="/jquery/jquery.js"></script> </head> <body> <ul><li>Does the UL contain an LI?</li></ul> <script> $("ul").append("<li>" + ($("ul").has("li").length ? "Yes" : "No") + "</li>"); $("ul").has("li").addClass("full"); </script> </body> </html>
上面的效果就是查找ul下面是否有li,如果li则在赛选的ul中append一个li
标签。
filter方法
$('li'). filter('.a').css('background-color' , 'red'); 不同的是filter()方法,条件作用于自身;has()方法条件是作用于它的后代元素中。 has和filter的作用范围不同而已,$("li").has(".topLine"), $("li").filter(".topLine");相同的是has返回的是后代满足class=topLine的自身li对象,filter则返回的是自身li 为class=topLine的元素。
filter对自身的过滤。相当于$(‘li.a’)
相关文章推荐
- jquery中的live、on、onclick、bind
- JQuery的部分巧用法
- jquery与php交互之GET、 POST
- jQuery给动态添加的元素绑定事件
- jQuery插件之ajaxFileUpload
- IE 9 ,IE 10 jquery ajax 缓存问题
- Jquery--------图片轮放
- JQuery开发7-网页中禁用鼠标右键单击和文本选择
- Jquery-2简单的登录输入框判断
- jQuery实现楼梯
- jquery 变量和原生js变量的关系
- JqueryForm表单元素取值赋值的各种用法
- 选项卡jQuery实现
- jquery 获取 动态input等元素的id
- Jquery实现如何关闭离开页面时提醒
- Jquery-1实现简单的复选框删除增加操作
- jquery实现滚动到页面底部时无限加载内容的代码
- jquery控制复选框
- jquery为多个元素添加事件
- 11个好用的jQuery拖拽拖放插件