在jquery中使用$(this)选择器和另一个嵌套选择器

时间:2014-04-17 13:55:11

标签: javascript jquery this attr

使用$(this)时指定嵌套选择器的最佳方法是什么?

在这个例子中:

$('.example').each(function() {
    var url = $(this).attr('href');
});

url将返回undefined,因为它首先需要'a'选择器。 理想情况下,我想说:

var url = $(this, 'a').attr('href');

但是这不起作用,以下按预期工作,但看起来不是很整洁:

$('.example').each(function() {
    var link = $(this).find('a');
    var url = $(link).attr('href');
});

那么如何才能正确使用$(this)'a'


注意:我知道以下内容可行,但不是出于我的问题。

 $('.example > a').each(function() {
     var url = $(this).attr('href');
 });

2 个答案:

答案 0 :(得分:5)

使用:

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

答案 1 :(得分:0)

(这应该是评论,但我需要更多代码空间)。

当你说

  

它首先需要'a'选择器

你对“它”究竟是什么意思?那里什么都没有“期待”任何东西。任何元素(理论上)都可以具有href属性。

另外,您的HTML如何?如果是

<a class="example" href="#">...</a>

然后只有你的第一个例子有效,其他的没有。你的其他例子都希望

<div class="example"><a href="#">...</a></div>

反过来不适用于第一个例子。

究竟是什么问题?如果$(this).attr("href")返回undefined,那么您可以轻松地检查它。你能给出一个具体的用例吗?