2011-06-22 45 views
4

liタグのアンカーをクリックすると、先行するh3タグのインデックスを特定したいと思います。たとえば、概要をクリックすると、Introductionのインデックスを取得したいと考えています。私はJqueryでこれをどのように達成しますか?Jqueryでタグの叔父を見つける方法

<h3><a href="Introduction" rel="address:/Introduction">Introduction</a></h3> 
<div class="navigation primary_navigation"> 
    <ul> 
     <li><a href="purpose" rel="address:/purpose">Purpose</a></li> 
     <li><a href="overview" rel="address:/overview">Overview</a></li> 
    </ul> 
</div> 
<h3><a href="Incorporate_Learning" rel="address:/Incorporate_Learning">Incorporate Learning</a></h3> 
<div class="navigation primary_navigation"> 
    <ul> 
     <li><a href="appraise" rel="address:/appraise">Appraise</a></li> 
     <li><a href="select" rel="address:/select">Select</a></li> 
     <li><a href="define" rel="address:/define">Define</a></li> 
     <li><a href="execute" rel="address:/execute">Execute</a></li> 
     <li><a href="resources" rel="address:/resources">Resources</a></li> 
    </ul> 
</div> 

答えて

4
$(function() { 
    $("li a").click(function (e) { 
     e.preventDefault(); 
     var $h3 = $(this).closest(".primary_navigation").prev(); 
     console.log($("h3").index($h3)); 
    }); 
}); 
+0

ありがとう、これは完全に働いた。今朝私の頭の中に私の頭を包み込むことができませんでした。乾杯。 Stackoverflowはすばらしいコミュニティです。 –

+1

これは、あなたのナビゲーションセクションだけでなく、ページ上のすべてのH3の配列のインデックス内にあることに注意してください。サンプルコードではうまくいきますが、ページ上の完全な部分があなたの後ろのものを返さないかもしれません。 – Robert

+0

本当に、私はクラスセレクタを追加することを確認します。 –

1

これは、あなたが試すことができ

$("li").live("click", function(){ 
    alert($(this).parents('.navigation').prev().html()); 
}); 
+0

マイナス前回のH3の長さがあるので

$(this).closest('div.navigation').prevAll('h3').length 

は、2を返します – Teneff

2

動作するはず

$('.navigation a').click(function(){ 
    var uncle = $(this).parents(".navigation").prev('h3'); 
    ... 
}); 
1
$('li>a').click(function(){ 
    var uncle = $(this).parents('ul').parent().prev(); 
    return false; 
}); 

jsFiddle

4

インデックスが必要な場合は、先にクリックしたポイントからすべてh3を得ることができます。

何かのように:2つの要素をありますときにインデックスは、リンクではなく、リストの要素をクリックしてのことだ。1.

+0

これはインデックスを取得する余分な作業のようです。なぜインデックス関数を使用しないのですか? – ScottE

+0

すべてのH3要素に対してDOMを打つのはなぜでしょうか? – Robert

+0

私は、良い点を参照してください。これはより良い答えです。 – ScottE

関連する問題