jQuery filter() 遍历似乎不起作用?
我不知道这有什么问题?
$('.post').live('mouseenter mouseleave', function() {
$(this).filter('anything here,a,div,.class,#id').toggleClass('hidden');
});
这工作得很好。
$('.post').live('mouseenter mouseleave', function() {
$(this).toggleClass('hidden');
});
我想在鼠标悬停时显示一个锚点。类似于 脸书
I dont know what is the problem with this ?
$('.post').live('mouseenter mouseleave', function() {
$(this).filter('anything here,a,div,.class,#id').toggleClass('hidden');
});
where as this works fine.
$('.post').live('mouseenter mouseleave', function() {
$(this).toggleClass('hidden');
});
There is an anchor which I would like to show on mouse hover. Similar to Facebook
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
$(this)
指的是您的.post
元素。.filter()
删除任何与选择器不匹配的内容。因此,在您给定的示例中,如果
.post
元素不是以下元素之一,它将被过滤掉。
.filter()
不遍历。它采用 jQuery 集并将其缩减为与给定选择器匹配的元素。http://api.jquery.com/filter/
编辑:
jQuery 中的遍历方式有很多种。
http://api.jquery.com/category/traversing/
获取所有< code>a 元素是接收事件的
.post
元素的后代,您可以这样做:使用哪种遍历方法取决于您的情况。
$(this)
refers to your.post
element..filter()
removes anything that does not match the selector.So in your given example if the
.post
element is not one of the followingit gets filtered out.
.filter()
doesn't traverse. It takes a jQuery set and reduces it to the elements that match the selector given.http://api.jquery.com/filter/
EDIT:
There are lots of ways to traverse in jQuery.
http://api.jquery.com/category/traversing/
To get all the
a
elements that are descendants of the.post
element that received the event, you could do:Which traversal method to use will depend on your situation.