2011-08-05 8 views
0
<dl> 
<dt>1</dt> 
<dd></dd> 
<dt>2</dt> 
<dd></dd> 
<dt>3</dt> 
<dd></dd> 
<dt>4</dt> 
<dd></dd> 
<dt>5</dt> 
<dd></dd> 
</dl> 

ユーザーがクリックしたときにdt要素のインデックスを取得するにはどうすればよいですか? 0jQueryでdtの数を取得

$('dt').click(function(){ 
var index = 'how to?'; 
alert('current dt index is ' + index); 
}); 

答えて

4

あなたは行うことができます:ここに

$('dt').click(function(){ 
    var index = $(this).prevAll('dt').length; 
    alert('current dt index is ' + index); 
}); 

フィドル:http://jsfiddle.net/nicolapeluchetti/erUPs/

EDITを - あなたはちょうどあなたができる次のddにクラスを追加する必要がある場合:ここ

$('dt').click(function(){ 
    $(this).next('dd').addClass('myclass') 

}); 

フィドルを:http://jsfiddle.net/nicolapeluchetti/erUPs/2/

+0

非常に巧妙です。 +1 – Matt

+0

クラスをddに追加するにはどうしたらいいですか? – Jasper

+0

もし普通のクラスであれば、あなたは私が思うように(私は私の答えを編集しています)http://jsfiddle.net/nicolapeluchetti/erUPs/2/ –

2
$('dt').bind('click', function() { 
    var index = $(this).parent().children('dt').index(this); 
}); 

最初の4を与えるべき第dtは、セレクタを受け入れるchildren()方法、及びindex()方法を参照してください。

addClass()メソッドを使用して、クリックしたdtにクラスを追加します:私は$(this)を停止するには、self$(this)を割り当てた

$('dt').bind('click', function() { 
    var self = $(this); 
    var index = self.parent().children('dt').index(this); 

    self.addClass("foo-" + index); 
});  

回の不必要な数を計算して編集

+0

emm、クリックしたdtにクラスを追加するにはどうすればよいですか? – Jasper

+0

免責事項:@ Nicolaの答えを使用してください...これはこれより効率的です。 – Matt

+0

@Steve:クラスを追加するための私の編集を参照してください。 – Matt

関連する問題