7

Javascript の ID でリスト項目のインデックスを見つけようとしています。たとえば、5 つの項目のリストがあり、要素がリスト内のどの位置にあるかを把握したいとします。以下は、私が構築したいと考えているコードです。

onclick ハンドラーを使用して要素を見つけていますが、これは機能しています。リスト「squareList」内の要素の位置を何らかの方法で把握する必要があります。

window.onload=function(){
    function getEventTarget(e){
        var e=e || window.event;
        return e.target || e.srcElement;
    }

    function selectFunction(e){
        var target=getEventTarget(e);
        alert(target.id);
    }

    var squareList=document.getElementById('squareList');
    squareList.onclick=function(e){
        selectFunction(e);
    }
}
4

5 に答える 5

18

インデックスを取得するには、次のようにします。

Array.prototype.indexOf.call(squareList.childNodes, target)

また、クロスブラウザーの回避策を既に使用しているため、jQuery では次のようにします。

$(document).ready(function() {
    $('#squareList li').click(function() {
        var index = $(this).index();
    })
});
于 2013-08-18T04:30:05.387 に答える
3

別の解決策があり、共有したい

function getEventTarget(e) {
  e = e || window.event;
  return e.target || e.srcElement; 
}

let ul = document.getElementById('squareList');
ul.onclick = function(event) {
  let target = getEventTarget(event);
  let li = target.closest('li'); // get reference by using closest
  let nodes = Array.from( li.closest('ul').children ); // get array
  let index = nodes.indexOf( li ); 
  alert(index);
};

ここで確認できます

参考:一番近い

于 2020-03-08T03:02:07.967 に答える