我想这一问题很容易让你们中的一半在那里,但我已经坚持了几个小时,所以,我非常感谢你的帮助。以下是我一直在努力的方法:
我需要选择包含以href
结尾的.pdf
属性的所有链接元素。我带来了这个解决方案:
$('a[href$=".pdf"]').filter(function() {
return $(this).parent().has('ul');
})
})
然而,无论$(this).parent().has('**anytag**')
是什么(我用firebug检查过),似乎"anytag"
总是返回true。
所以,我的代码被破坏但我无法理解为什么它有这种意外的行为。你能指出我在这里的误解是什么吗?
答案 0 :(得分:3)
.has()
本身就是一个过滤函数。它返回一个新的jQuery集,其元素具有与选择器匹配的元素作为其后代。由于jQuery集很少,因此在.filter()
中返回它们没有任何效果,因为没有任何内容被过滤掉。
您可以改为将:has
选择器与子选择器结合使用:
$(':has(ul) > a[href$=".pdf"]');