2015-07-26 3 views
-2

Я возвращаюсь через элементы в DOM, ища элемент DOM, который соответствует элементу event.target. Каков наилучший способ найти event.target в DOM, а не просто ссылаться непосредственно на event.target? У элементов DOM есть определенный самоопределяемый уникальный идентификатор, который я могу использовать для их сравнения?DOM Element unique id

+1

Нет, нет встроенного удостоверения личности. Javascript является объектно-ориентированным, сам элемент является его собственным уникальным идентификатором. – Barmar

+1

Зачем вам нужно возвращаться? 'event.target' - это элемент, зачем его искать? – Barmar

+0

это не так, как это работает :) Даже объекты должны иметь какой-то способ идентификации themsleves, будь то ячейка памяти или хэш или уникальный идентификатор, что-то уникальное доступно! –

ответ

1

Для проверки равенства вы можете просто сделать это:

if (event.target === anotherElement) { 
    // anotherElement is event.target 
} 

Одна из причин, вы можете рекурсию, когда у вас есть уже что элемент в руке, заключается в том, чтобы проверить, является ли один элемент потомком другого элемента. Для этого вы можете использовать метод .contains:

if (containerElement.contains(event.target) { 
    // event.target is a descendent of containerElement 
} 
+0

спасибо, знаете ли вы, что оператор === на самом деле сравнивает в этом случае? –

+1

В javascript оператор '===' при сравнении объекта возвращает true только в том случае, если объект сравнивается с ним. Например, '{a: 1} === {a: 1}' будет false, потому что это разные объекты, но 'var a = {b: 1}; var b = a; a === b' будет истинным, так как переменная b содержит одни и те же объекты. Если бы я написал javascript-движок, каждая переменная была бы указателем, и я бы сравнил адрес памяти. Вы можете прочитать это: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness –

0

Элементы DOM не имеют уникальных идентификаторов, единственных идентификаторов, которые они имеют, это тот, который вы определяете в своем html, для элементов html. Однако, если вы ищете отслеживание своих элементов DOM, используя какой-то ключ, я бы предложил работать с списком ключевых значений.

Таким образом, вы сможете отслеживать свои элементы в соответствии с их заданным ключом в списке.

Пожалуйста, обратитесь:

Java script key - value article

Java script objects tutorial