I'm trying to iterate "up" through the DOM nodes from a given element to get the first parent element which has the attribute 'animated'.
var el = evt.target;
console.log(el);
while (!el.hasAttribute('animated'))
{ el = el.parentNode; }
return el;
console.log(el);
Throws error:
>>>Uncaught TypeError: Object #<HTMLDocument> has no method 'hasAttribute'
How is this possible? I've clearly declared the variable el
and the first log is correct .
The document
object:
parentNode
of the root element (if you were using HTML that would be the <html>
element)Only elements have attributes, so only element objects have a hasAttribute
method.
You need to stop testing when you reach the document object (or when you aren't testing an element any longer).
while (
el.nodeType === 1 &&
(!el.hasAttribute('animated'))
) {
var el = evt.target
is a document
object and therefore does not have a hasAttribute
attribute.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With