1

私はこのコードを持っています:

    <nav role="nav" id="primary-nav" class="overview">
    <h3 class="section active">
        <span class="menu-toggle open"></span>
        <span data-content="the-basics">The Basics</span>
    </h3>
        <ul class="active">
            <li><a href="#" class="nav-link" data-content="0">Introduction</a></li>
            <li><a href="#" class="nav-link" data-content="1">A Chapter in the Zeitgeist Movement</a></li>
        </ul>
    <h3 class="section">
        <span class="menu-toggle"></span>
        <span data-content="setting-up-a-national-chapter">Setting up a National Chapter</span>
    </h3>
    <ul>
        <li><a href="#" class="nav-link" data-content="0">Gathering Volunteers &amp; Social Media</a></li>
    </ul>
</nav>

そしてこのjavascriptコード

  // Load page
  $('a.nav-link').on('click', function( event ) {
      event.preventDefault();
      var $this = $(this);
      var parent = this.parentNode;
      console.log(parent);
      var dataContent = $this.attr("data-content");
      console.log(dataContent);
  });

この特定のセクションの親H3スパンのdata-content=""を取得する正しい方法は何ですか。たとえば、基本の「基本」を返したい場合です。

どんなアドバイスも大歓迎です。

4

2 に答える 2

2

あなたの与えられた例では、これはおそらくうまくいくでしょうが、テンプレートの変更には少し壊れやすいかもしれません:

$this.closest('ul').prev('h3').children('[data-content]')
于 2013-02-04T22:38:49.000 に答える
1
var dataContent =  $this.closest('ul').prev('h3').find('span[data-content]').data('content'); // the-basics
于 2013-02-04T22:37:38.500 に答える