如何将“this”与另一个选择器结合起来?

时间:2012-09-03 21:10:40

标签: jquery

我正在尝试编写一个选择器,仅在它是一个锚时获取this个对象。我希望它除了<a>标签之外什么都没有。

$('.link').mouseover(function(){

    $("a", this).css('color','#00F');

})

$("a", this).css('color','#00F');不起作用,但如果我只在查询中留下this,则效果会很好。我可以在示例,博客和文档中找到的所有其他选择器用于获取子对象(find() children()),组合两个选择器(使用add()),或几乎任何其他选项我正在寻找的东西。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:5)

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

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

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

要注意,filter()会过滤当前 jQuery对象;所以$('*').filter('a')会过滤掉a中的元素。另一方面,$('a', this)(相当于$(this).find('a'))搜索jQuery对象中与提供的选择器匹配的元素的后代。