如何递归地浏览阴影DOM

时间:2015-01-18 10:27:37

标签: polymer

我想验证定制的聚合物元素。要做到这一点,我想在javascript中访问我所有的嵌套聚合物元素,看看它们是否是有效的。 我找不到一个简单的方法来做到这一点。 this.querySelectorAll找不到嵌套在其他聚合物元素中的输入。我似乎无法使用" / deep /"在这些选择器中。 是否有捷径可寻 ?或者我是否必须执行一个递归的javascript方法,它将在具有阴影根的所有元素中调用querySelectorAll? (我猜演出会变得难看......)

感谢您的帮助。 如果没有快速解决方案,我可能会尝试相反(让我的输入注册到父级)

1 个答案:

答案 0 :(得分:1)

<强>答案:

element.querySelectorAll()会在使用/deep/时找到一些元素,但是,它只会到目前为止(1影子dom级别)。这确实需要来自每个ElementNode的递归调用。

注意:

这种行为在很大程度上违背了HTML的核心原则(即无论内容的形式如何,网页都能正常工作)。换句话说,无论它们的位置如何,所有元素都是有效的。

作为一个例子,我创建了一个自定义元素,它只呈现特定的子元素并隐藏所有其他元素。这仍然符合上述原则,因为元素的基本呈现由元素/代理控制,但允许开发人员/设计者自定义其表示而不是标准表示。