我们有:
<div class="companylinks">
<span class="current">
<a class="welcome">Welcome!</a>
</span>
<span>
<a class="ic_generalinfo">General Info</a>
</span>
</div>
我想获得<a>
中的<span class="current">
的课程(此处为'欢迎')
var selected_tab = $('#companylinks span[class="current"]').closest('a').attr('class');
alert(selected_tab);
但我得到'未定义',我应该如何离这里最近()?
我将不胜感激任何帮助。 感谢
答案 0 :(得分:3)
closest
仅在DOM中遍历,而不是向下遍历。您可能希望使用类似children
的内容。
您的代码中还有其他错误;您当前正在访问#companylinks
,.companylinks
应该是span[class="current"]
,因为这是一个类名而不是ID。除此之外,您的span.current
可以写为{{1}},但这不是错误。
答案 1 :(得分:0)
.closest()
函数获取最接近的父级不是最接近的子级。得到你想要的东西只需这样做:
$('a.welcome')
或者如果您需要更多特异性:
$('.current a.welcome')
答案 2 :(得分:0)
对于集合中的每个元素,获取与之匹配的第一个元素 选择器通过测试元素本身并遍历其中 DOM树中的祖先。
改为写
$('.companylinks span.current').find('a').attr('class');
答案 3 :(得分:0)
嘿,如果你只想要那个锚元素,你可以这样做:
$(document).ready( function() {
var selected_tab = $('.companylinks .current').find('a').attr('class');
alert(selected_tab);
});
答案 4 :(得分:0)
.closest()
上升到父链,而不是父链。
要指定在选择器中必须满足所有必须满足的多个父项,您可以在由空格分隔的选择器中单独列出它们。在这种情况下,您可以定位.current中的<a>
标记,然后获取它的类:
$(".current a").attr("class");
或者,如果您只想将其范围限定在.companylinks
内,那么您可以使用它;
$(".companylinks .current a").attr("class");
注意:您不需要使用span[class=".current"]
。您可以使用.current
。