【发布时间】:2016-05-18 20:37:00
【问题描述】:
Polymer 0.5 FAQ 对此有如下说明:
我的组件正在生成具有多个同名 ID 的标记。
Shadow DOM polyfill 努力模仿原生 Shadow DOM,因为具有相同 id 的节点仍将被封装。
但是,在使用 polyfill 时,您应该避免使用 DOM 级别的 id 引用(例如
<label for>)。在 Shadow DOM polyfill 下,id 可能无法正确解析。
在 Polymer 1.x 中这仍然适用吗?如果我执行 document.getElementById,那不是总是返回 DOM 中具有该 ID 的第一个元素吗?如果一个 Polymer 组件被重用,我是否需要先将我的范围限制为感兴趣的组件,然后调用 component.getElementById(或 Polymer 的 component.$.ID)?
这当然也对通过测试框架访问元素有影响。另一种方法是使用类来访问组件中的元素(例如 component.$$('.myClass')),但使用 ID 似乎更简洁,而且通常更合适。非常感谢您对此进行更多澄清。
【问题讨论】:
标签: javascript dom polymer polymer-1.0