我正在尝试从给定元素“向上”遍历 DOM 节点,以获取具有“动画”属性的第一个父元素。
var el = evt.target;
console.log(el);
while (!el.hasAttribute('animated'))
{ el = el.parentNode; }
return el;
console.log(el);
抛出错误:
>>>Uncaught TypeError: Object #<HTMLDocument> has no method 'hasAttribute'
这怎么可能?我已经清楚地声明了变量 el
第一个日志是正确的。
最佳答案
document
对象:
- 是一个节点
- 是
parentNode
根元素(如果您使用的是<html>
元素的 HTML) - 不是一个元素。
只有元素才有属性,所以只有元素对象才有hasAttribute
方法。
当您到达文档对象时(或当您不再测试某个元素时),您需要停止测试。
while (
el.nodeType === 1 &&
(!el.hasAttribute('animated'))
) {
关于javascript - 元素没有方法 hasAttribute,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10819230/