我正在进行一个副业项目,其中HTML文件是生成并发送到前端,在那里使用Polymer 3和其他技术进行格式化和显示。
简而言之,当我调用
相反,它似乎只在标签直接为
为了获取锚点元素列表!
但是,如果锚点存在于其他地方,则不会获取它们。
注意: Polymer 3服务器正在运行。 有些元素(至少在Chrome的调试器中看到的)可能是影子根。
因此,有时我们会这样做:
或类似的。
简而言之,当我调用
querySelectorAll
时,它不会返回例如文档中的所有锚标签。document.querySelectorAll("a");
相反,它似乎只在标签直接为
querySelectorAll
调用的节点的子代中才承认它们的存在。因此,如果我有以下代码:<div>
<custom-tag1>
<custom-tag2>
<a href="http://www.google.com">Google</a>
<a href="http://www.yahoo.com">Yahoo!</a>
<a href="http://www.amazon.com">Amazon</a>
</custom-tag2>
</custom-tag2>
</div>
我发现首先需要获取document
对象,然后获取body
对象,接着获取在body
对象的顶层存在的任何内容(例如,上面的div直接在body内),等等。
所以,如果我(终于!)获取到了对body
的引用,我可以调用:
theBody.querySelectorAll("a");
如果没有找到相应的结果,它会返回一个空列表。我需要进行如下处理:
theBody.querySelectorAll("div")[0].querySelectorAll("custom-tag1")[0].querySelectorAll("custom-tag2")[0].querySelectorAll("a");
为了获取锚点元素列表!
但是,如果锚点存在于其他地方,则不会获取它们。
注意: Polymer 3服务器正在运行。 有些元素(至少在Chrome的调试器中看到的)可能是影子根。
因此,有时我们会这样做:
someNode.shadowRoot.querySelectorAll("a");
或类似的。