- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如标题所示,我使用 HTMLElement 作为 javascript map 容器的关键
考虑下面的例子
let map = new Map(),
nodeA = document.createElement("b"),
nodeB = document.createElement("b");
map[nodeA] = 5;
console.log(map[nodeB]); // prints 5
现在显然 nodeA.isSameNode(nodeB) 会给你 false。
玩了一会儿,我发现Map会将具有相同标签名称的元素视为“相等”,不管它们是否实际上是同一个节点。
有没有办法绕过这种行为?即我希望将不同的节点视为不同的键。
编辑 感谢 MarcelD 指出。我的意思是说 map[nodeB] 是固定的,感谢答案。愚蠢的错误
最佳答案
你不使用 Map
如预期的那样。
您需要编写 map.set(nodeA, 5)
而不是 map[nodeA] = 5
。否则,您只需添加一个带有字符串键 "[object HTMLElement]"
和值 5
的新属性。
let nodeA = document.createElement("b");
let nodeB = document.createElement("b");
let map = new Map();
map.set(nodeA, 5);
map.set(nodeB, 1);
console.log(map.get(nodeA)); // 5
console.log(map.get(nodeB)); // 1
关于Javascript map 使用 HTMLElement 作为键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44080526/
我正在尝试使用 VS 2013 中的 WebBrowser 控件在网页上输入文本。我的应用程序是用 C# 编写的。网页的 Html 不使用标准 ID,而是使用称为 data-gel-id 的内容。我相
假设我有以下 HTML 代码: My first menu My second menu My title My t
在很多情况下,我已经能够以两种方式为所有 HTMLElements 注册方法。 所以我很好奇,有什么不同吗? 我应该更喜欢一种方法而不是另一种方法吗? 什么是正确的方法? 最佳答案 使用原型(prot
我创建了一个自定义事件。 var event = new Event('hello');,向节点添加监听器 div1.addEventListener('hello', /*cb1*/); div2.
[[WARNING]]:看起来像问题 TypeScript: add type property to HtmlElement但我需要向元素对象添加一个函数,而不是向节点添加属性。 我尝试将 Java
我通过 babel(es2015 预设)运行 my-widget.js 来生成 my-widget-es5.js。这会导致 Polymer 出现错误。 Class constructor Polyme
[[WARNING]]:看起来像问题 TypeScript: add type property to HtmlElement但我需要向元素对象添加一个函数,而不是向节点添加属性。 我尝试将 Java
我试图用以下设计模式写一些东西: void main() { document.registerElement('abs-test', Test); TestExtend test =
我正在尝试为 textarea html 元素引发 keydown 和 key up 事件,我可以将内部文本设置为我想要的文本,但网站似乎不承认文本在那里,除非我可以提出这些事件。我怎样才能做到这一点
使用 jQuery 可以做这样的事情:$("div")[5].animate() 在我看来,开发人员使用 prototype 扩展了 HTMLElement。 我现在的问题是:他们是怎么做到的?例如,
似乎HTMLElements默认情况下在 5 秒内等待元素。有什么方法可以更改此默认超时持续时间吗? 最佳答案 在当前版本中这是不可能的。但是我们有一个开放的拉取请求(https://github.c
https://jsfiddle.net/6vqbLm5c/29/ HTML: paragraph CSS: p { margin:0; } div { padding: 10px
如果该按钮不存在,则测试将挂起超过 5 秒。 DefaultElementLocator 中的 findElement() 方法被调用约 63 次! block 嵌套越深,等待时间越长。 是否可以在
我想检查库如何处理我传递给它的视频元素,所以我天真地这样做了: cosnt videoElement = new Proxy(document.querySelector('video'), {
我有一个 Element,但我不知道如何从中获取 HTMLElement。 例如: A link Another link 然后我像这样得到它们: var nodes: NodeListOf = do
我想从 document 获取元素高度,我正在尝试使用 const header = document.getElementsByClassName(myClass) 获取它。但是在将Element
我在将我的一个 JavaScript 行转换为 TypeScript 时遇到了一些问题。 此行用于在 ID 为 containerId 的容器上创建类型为 widgetName 的小部件。 widge
我正在尝试在 TypeScript 中实例化新的 HTMLDivElement var elem = new HTMLDivElement(); 但是浏览器抛出 Uncaught TypeError:
我想通过 javasacript 从字符串创建 HTMLElement,就像这样 element = createHTMLElement('title') element.addEventListen
如何获取插槽中 child 的 Dom 元素。试图在life hook onMounted()中获取一个对象的el vnode属性为null 我的组件: {{text}} impo
我是一名优秀的程序员,十分优秀!