Как идентифицировать элементы HTML (в javascript) независимо от браузера - PullRequest
1 голос
/ 19 марта 2010

Мне нужно идентифицировать все html-элементы на странице независимо от браузера. В основном я использую события мыши для записи кликов на странице. Мне нужно записать, какой элемент был нажат. Поэтому я добавляю слушателя мыши к элементу document.body. А при наведении мыши я получаю элемент под мышкой. Скажем, это div. Затем я использую индекс этого div внутри document.getElementsByTagName('*') nodelist и nodeName ('div'), чтобы идентифицировать этот div. Идентификатор примера элемента будет div45, что означает его div и 45-й элемент в списке узлов *.

Это все хорошо, пока я не использую IE, который дает мне разные индексы. Таким образом, div45 в FireFox может быть div47 в IE.

У кого-нибудь есть идеи? Мне просто нужно, чтобы идентификаторы всех элементов на странице были одинаковыми в любом браузере, возможно, индексация недостаточно хороша, но у меня больше нет идей.

Спасибо

Guido

Ответы [ 2 ]

2 голосов
/ 19 марта 2010

Библиотеки Javascript, такие как jQuery, разработаны так, чтобы не зависеть от браузера. Пожалуйста, используйте их.

Поиск по всему дереву DOM не кажется мне подходящим.

1 голос
/ 19 марта 2010

IE неправильно возвращает узлы комментариев как часть getElementsByTagName('*'). Отфильтруйте их (например, собрав только узлы Элемента - node.nodeType === 1), и вы получите постоянный результат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...