jQuery最近用法

时间:2012-12-03 08:22:19

标签: jquery

我们有:

<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);

但我得到'未定义',我应该如何离这里最近()?

我将不胜感激任何帮助。 感谢

5 个答案:

答案 0 :(得分:3)

closest仅在DOM中遍历,而不是向下遍历。您可能希望使用类似children的内容。

您的代码中还有其他错误;您当前正在访问#companylinks.companylinks应该是span[class="current"],因为这是一个类名而不是ID。除此之外,您的span.current可以写为{{1}},但这不是错误。

答案 1 :(得分:0)

.closest()函数获取最接近的父级不是最接近的子级。得到你想要的东西只需这样做:

$('a.welcome')

或者如果您需要更多特异性:

$('.current a.welcome')

答案 2 :(得分:0)

阅读documentation of .closest()

  

对于集合中的每个元素,获取与之匹配的第一个元素   选择器通过测试元素本身并遍历其中   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