0

私は機能を持っています:

 <script type="text/javascript">
    $(document).ready(function () {
        $('#myTab a').click(function (e) {
            e.preventDefault();
            if ($(this).attr('href') === ('#' + $('#myTabContent').children('div').attr('id'))) {
                alert($(this).attr('href'));
            }
        });
    });
</script>

およびマークアップ:

 <ul id="myTab" class="nav nav-tabs">
    <li><a href="#vergiSK" data-toggle="tab">
        </a></li>
    <li><a href="#spkSK" data-toggle="tab">
        </a></li>
    <li><a href="#hukukSK" data-toggle="tab">
       </a></li>
</ul>
<div id="myTabContent" class="tab-content">
    <div class="tab-pane fade" id="vergiSK">
     <ul>
        <li></li>
        <li></li> 
     </ul>
   </div>
    <div class="tab-pane fade" id="spkSK">
      <ul>
        <li></li>
        <li></li> 
     </ul>
    </div>
    <div class="tab-pane fade" id="hukukSK">
      <ul>
        <li></li>
        <li></li> 
     </ul>
    </div>
 </div>

問題は、「 a 」要素の 1 つをクリックすると、最初の ID を持つ要素のみが取得されることです。一致するすべての「 href 」と「 id 」の値を取得するにはどうすればよいですか?

4

1 に答える 1

2

divクリックしているアンカーに関連するを取得しようとしている場合は、次のようになります。

<script type="text/javascript">
    $(document).ready(function () {
        $('#myTab a').click(function (e) {
            var $div = $($(this).attr("href"));
            // Do something with the div
        });
    });
</script>

これは、href使用している (#vergiSKなど) の値が有効な ID セレクターであるため機能するため、直接渡して$()、その ID を持つ要素にラップされた jQuery オブジェクトを取得できます。だけではなく$(this).attr("href")を取得するために使用していることに注意してください。これは展開されます (したがって、属性の実際のコンテンツだけでなく、完全な URL が含まれます)。hrefthis.hrefhref

実際の例(対応するリンクをクリックすると、div が一時的に赤くなります) | ソース

しかし、何らかの理由で#tab-contentの子の要素をループしたい場合は、 を使用しますeach

$('#myTabContent').children('div').each(function() {
    // Raw DOM element for each child `div` is `this`
});
于 2013-03-29T14:47:25.127 に答える