javascript - 元素没有方法 hasAttribute,为什么?

标签 javascript

我正在尝试从给定元素“向上”遍历 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/

相关文章:

javascript - 检查不同按钮上 Javascript 中的必填字段

JavaScript 和 HTML : Event Listener Is Not Producing Text Alert As Expected; ReferenceError: button is not defined

javascript - 压缩多个IF语句

javascript - 使用 javascript 获取年份和日历周的周开始和结束日期

javascript - 用户保存未保存且没有错误

javascript - 使用扩展运算符的 ES6 对象克隆也在修改输入

javascript - ie8 上的 d3 svg 图表 (Windows XP)

javascript - 如何通过删除多余的斜杠来重新格式化 URL

使用 Phonegap 全局数组的 Javascript 不起作用

javascript - 在选择中对齐文本中心