使用$(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');
});
答案 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,那么您可以轻松地检查它。你能给出一个具体的用例吗?