21

我想用 找到class子元素的父元素.current

var currentli = $('.nav').find('a.current').parent().attr('class');
console.log(currentli);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="nav">
  <ul>
    <li class="tab1">
      <a href="#1" class="current">Welcome</a>
    </li>
    <li class="tab2">
      <a href="#2">About</a>
    </li>
    <!-- and some lists more -->
  </ul>
</div>

但它总是让我失望undefined

注意:我不知道a当前有.current哪个,这就是我必须使用该.find()方法的原因。

4

3 回答 3

42

您的代码应该已经可以工作,但访问该属性可能更可靠className

jQuery(function($) {
  console.log($('.nav a.current').parent().prop('className'));
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<div class="nav">
  <ul>
    <li class="tab1">
      <a href="#1" class="current">Welcome</a>
    </li>
    <li class="tab2">
      <a href="#2">About</a>
    </li>
    <!-- and some lists more -->
  </ul>
</div>

于 2013-06-14T13:29:21.720 回答
1

这将起作用:

var currentli = $($('.nav').find('a.current')).parent().attr('class');
console.log(currentli);

我只是将找到的集合再次转换为 jQuery 对象。

见小提琴:http: //jsfiddle.net/RaphaelDDL/wnW4u/

aPs.:如果有多个class="current",只会检索第一个。

于 2013-06-14T13:29:22.230 回答
1

jQuery(function($) {
  console.log($('.nav a.current').parent().prop('className'));
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<div class="nav">
  <ul>
    <li class="tab1">
      <a href="#1" class="current">Welcome</a>
    </li>
    <li class="tab2">
      <a href="#2">About</a>
    </li>
    <!-- and some lists more -->
  </ul>
</div>

于 2020-12-16T07:14:19.650 回答