jQuery filter()遍历似乎不起作用?

时间:2010-05-29 17:20:43

标签: jquery filter traversal

我不知道这有什么问题?

$('.post').live('mouseenter mouseleave', function() {  
         $(this).filter('anything here,a,div,.class,#id').toggleClass('hidden');
    });

这在哪里工作正常。

$('.post').live('mouseenter mouseleave', function() {  
         $(this).toggleClass('hidden');
    });

我想在鼠标悬停时显示一个锚点。与Facebook相似

1 个答案:

答案 0 :(得分:3)

$(this)指的是您的.post元素。

.filter()删除任何与选择器不匹配的内容。

因此,在您给出的示例中,如果.post元素不是以下

之一
'anything here,a,div,.class,#id'

它被过滤掉了。

.filter()不会遍历。它需要一个jQuery集并将其缩减为与给定选择器匹配的元素。

http://api.jquery.com/filter/


修改

有很多方法可以在jQuery中遍历。

http://api.jquery.com/category/traversing/

要获取作为接收该事件的a元素后代的所有.post元素,您可以执行以下操作:

$(this).find('a');

使用哪种遍历方法取决于您的情况。