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/

追伸: が複数ある場合aclass="current"、最初の 1 つだけが取得されます。

于 2013-06-14T13:29:22.230 に答える