1

私のHTMLは次のようになります:

<div id="aGroupOfLists">
    <dl id="list0">
        <dt> header0 </dt> 
        <dd> item0 in list0 </dd> 
        <dd> item1 in list0 </dd> 
        <dd> item2 in list0 </dd> 
    </dl>
    <dl id="list1">
        <dt> header1 </dt> 
        <dd> item0 in list1 </dd> 
        <dd> item1 in list1 </dd> 
    </dl>
</div>

dl2 つの を aに入れていることに注意してください。divそれぞれdlにいくつかdtの があります。

dtjQueryを使用して、ユーザーがクリックしたものを知りたいです。

だから私は書いた:

$('#list0').click(function() {
    var index = $("#list0").index(this);
    alert(index);
});

しかし、それは常にインデックスを提供します1

答えてくれてありがとう。

4

5 に答える 5

3

あなたがする必要があります:

$('#list0 dt').click(function() {
    var index = $(this).index();
    alert(index);
});

このフィドルをチェックしてください

dlまたは、両方のノードのインデックスにアクセスする場合は、

$('#aGroupOfLists dl dt').click(function() {
    var index = $(this).index();
    alert(index);
});

このフィドルをチェックしてください

于 2013-06-10T05:48:04.560 に答える
2

私は個人的にお勧めします:

$('#aGroupOfLists').on('click', 'dl dt', function(e){
    // logs the index of the clicked 'dt' element amongst its siblings:
    console.log($(e.target).index());

    // logs the index of the clicked 'dt' from amongst all 'dt' elements:
    console.log($(e.target).index(e.target.tagName));
});

JS フィドルのデモ

ddOPからの質問(および以下のコメント)に新しく追加された情報に基づいて、要素のインデックスとその中のテキストを取得しようとしていることが明らかになりました。

$('#aGroupOfLists').on('click', 'dl dd', function(e){
    /* logs the index of the clicked 'dd' element amongst its siblings
       (which includes the 'dt' elements): */
    console.log($(e.target).index());

    // logs the index of the clicked 'dd' from amongst all 'dd' elements:
    console.log($(e.target).index(e.target.tagName));

    console.log('Text: ' + $el.text());
});

JS フィドルのデモ

参考文献:

于 2013-06-10T05:53:54.193 に答える
1

なぜ...

$('dt').click(function(){
var index = $(this).index();
alert(index); // or just do whatever you want with index
}
于 2013-06-10T05:49:48.913 に答える
0

これを試して

$('dl dt').click(function() {
    alert("DT Index: "+$(this).index());
});

フィドル http://fiddle.jshell.net/4Crwj/

于 2013-06-10T05:52:46.490 に答える
-2

DT をクリックしたい場合は、それをセレクターに含める必要があります。

$('#list0 dt').click(function() {
    var index = $("#list0").index(this);
    alert(index);
});
于 2013-06-10T05:48:12.700 に答える