Более эффективный способ получить индекс узла на странице? - PullRequest
1 голос
/ 04 марта 2012

Мне нужно хранить индекс dom каждого элемента на странице.Элементы могут иметь или не иметь либо идентификатор, либо имя класса, чтобы идентифицировать их в 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 Ответ

1 голос
/ 04 марта 2012

Вот подход, который может помочь

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

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

    alert( nodeName +'  '+idx)
})

РЕДАКТИРОВАТЬ: я выбрал подход, у вас может быть меньше тегов для исключения, чем включать

...