如何将"this"与另一个选择器结合使用?



我正在尝试编写一个选择器,它只在this对象是锚点的情况下才获取它。我希望它什么都得不到,以防它不是<a>标签。

$('.link').mouseover(function(){
    $("a", this).css('color','#00F');
})

$("a", this).css('color','#00F');不起作用,但如果我在查询中只留下this,则会产生预期效果。我在示例、博客和文档中能找到的所有其他选择器都是用于获取子对象(find() children())、组合两个选择器(与add()),或者除我要查找的内容之外的几乎所有其他内容。有人能帮忙吗?

您可以使用is()方法来检查$(this).is('a')是否存在,然后做出相应的反应;

if ($(this).is('a')) {
    $(this).css('color', '#00F');
}

但在这种情况下,也许更好的解决方案是使用filter()方法来$(this).filter('a').css('color','#00F');

需要注意的是,filter()过滤当前jQuery对象;因此CCD_ 13将从所有元素中过滤出CCD_。$('a', this)(相当于$(this).find('a'))搜索jQuery对象中与所提供的选择器匹配的元素的后代。

最新更新