【问题标题】:Why Chrome don't print Element.classList property with a console.log()为什么 Chrome 不使用 console.log() 打印 Element.classList 属性
【发布时间】:2015-01-06 00:36:29
【问题描述】:

根据这篇文档https://developer.mozilla.org/en-US/docs/Web/API/Element.classList,classList 属性是 Element 类中的一个 DOMTokenList 对象。

使用 Chrome,当我打印 console.log(document.Element.prototype); 时找不到任何 classList 属性,但是当我这样做时

if (("classList" in document.createElement("_"))) {...}

条件为真。另一方面,当我这样做时

if (!('classList' in window.Element)) {...}

条件也为真!我应该缺少一些东西,但是什么?

【问题讨论】:

  • window.Element.classList 在 Firefox 和 Chrome 中都是 undefined
  • 应该是Element constrictor。
  • 你试过HTMLElement.prototype吗?
  • @Bergi 这似乎是 Firefox 的东西; Chrome 说它是未定义的。

标签: javascript google-chrome dom element


【解决方案1】:

它不是元素原型的属性,它是每个DOM节点(嗯,每个元素节点)的属性。

了解 DOM API 的指定方式描述了 DOM 对象的代码可以期待什么,但它并没有说明 如何 该功能在任何特定实现中工作(这是一种愚蠢,但你去)。

【讨论】:

  • 非常感谢!我期待 Element 成为 DOM 的一部分(因此成为 DOM 节点)。我的最终目标是检查 classList 在 SVGElement 中是否可用。所以我这样做了:if (!('classList' in document.createElementNS("http://www.w3.org/2000/svg","a"))) {...}。我觉得这有点傻,但我不知道如何做得更好。
猜你喜欢
  • 2018-11-03
  • 2012-12-30
  • 1970-01-01
  • 1970-01-01
  • 2020-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-30
相关资源
最近更新 更多