更有效的方法来获取页面上的节点索引?

时间:2012-03-04 16:06:07

标签: jquery click position

我需要在页面上存储每个元素的dom索引。这些元素可能有也可能没有id或类名来在dom中标识它们。我有一个方法可行,但我想知道是否有更有效的方法来编码这个?

感谢您的帮助......

代码:

$('textarea,input,select,img,a,span,label,embed,object,caption,map,h1,h2,h3,h4,h5,h6,li,ul,th,p,td,div').click(function (event) {

            if (event.target.nodeName.toLowerCase() == "textarea") {
                var nodeIndex = $("textarea").index(this);
                var nodeName = $(this).get(0).nodeName
                alert(nodeName + "," + nodeIndex);
            }

            if (event.target.nodeName.toLowerCase() == "input") {
                var nodeIndex = $("input").index(this);
                var nodeName = $(this).get(0).nodeName
                alert(nodeName + "," + nodeIndex);
            }

            if (event.target.nodeName.toLowerCase() == "img") {
                var nodeIndex = $("img").index(this);
                var nodeName = $(this).get(0).nodeName
                alert(nodeName + "," + nodeIndex);
            }

            //and so on...
         });

1 个答案:

答案 0 :(得分:1)

这是一种可能有用的方法

var noSearch=['script', 'style'];

$('body *').not( noSearch.join()).click(function(){
    var nodeName=this.nodeName
    var idx=$(nodeName).index(this);

    alert( nodeName +'  '+idx)
})

编辑:我接受了你可能有更少的标签要排除而不是包括