1

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

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

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

})

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

4

1 回答 1

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从所有元素中过滤掉 s 。$('a', this)另一方面(等效于$(this).find('a'))在 jQuery 对象中搜索与提供的选择器匹配的元素的后代。

于 2012-09-03T21:12:30.767 回答