2011-01-14 18 views
1

要素のインデックスを見つける正しい方法は何ですか?私はdivを使用して、新しいdivをコンテナに追加しています。インデックスに基づいて新しいIDを "持っている"必要があります。これにより、あとで削除機能を簡単にインデックスできます。つまり、私はちょうど更新するeach functionを実行することができ、IDのJquery find next index

これは私のコードです: - #addoption

$('#addoption').live('click',function(){ 
    var index = index('.pollq'); 

    alert(index); 

    $(this).parent('form').append('<br /><label for="">Option #'+($('.pollq').length+1)+'</label><input type="text" id="polloption'+($('.pollq').length+1)+'" class="pollq generate" />'); 

    $('#pollpreview').append('<br /><input type="radio"><span class="polloption'+($('.pollq').length)+'">Options polloption'+($('.pollq').length)+'</span>'); 

}); 
+0

あなたには、いくつかのHTMLを提供できる場合、行ってください。 – Reigel

+0

@Reigel - ごめんなさい。 htmlは非常に簡単な2つの "コンテナ" divs - フォーム&#pollpreview –

答えて

2
$('#addoption').live('click',function(){ 
    var i = $(this).parent('form').find('.pollq').length; 
    var id = "polloption"+i; 

    $(this).parent('form').append(
     '<br /><label for="'+id+'">Option #'+i+'</label><input type="text" id="'+id+'" class="pollq generate" />' 
    ); 

    // note that this should be a <label>, too 
    $('#pollpreview').append(
     '<br /><input type="radio"><span class="'+id+'">Options '+id+'</span> 
    '); 
}); 
+0

yep - これは以前のようなものでした(私はちょうど長さではなく"インデックス "を使うことを望んでいたので、削除機能でインデックスの再作成が容易になりました)そのような人生です –

+0

@Russell:なぜ要素を削除するとインデックスを再作成したいですか?これは必要ではありません... – Tomalak

0

をクリックされたときに、私はこれがあなたの要素のインデックスを与えるクラス.pollqのインデックスを見つけたいですクラス「pollq」はそのコンテナに対して:

var index = $('.pollq').index(); 

これはあなたが望むものですか?

すなわち指数は、次の例では "2" のようになります。

<div> 
    <div class="something"></div> 
    <div class="something-else"></div> 
    <div class="pollq"></div> 
</div> 
+0

@ダビデ - それは私が思ったものですが、それは私に "愚かな"数字、つまり常に7のインデックスを与えています。 - 変な? –

+0

'$( '。something')'はコンテナに対して相対的に動作しません "。それはドキュメント全体です。 – Tomalak

+0

@Tomalak:はい、しかし 'index'はコンテナに関連しています –