this.node在Chrome控制台中仅显示为#文档片段
this.node showing itself as just #document-fragment in Chrome console
我阅读了Polymer的文档:
每个Polymer元素都有一个this.root属性,该属性是其本地DOM树的根。
(https://www.polymer-project.org/1.0/docs/devguide/local-dom.html)
如果我有这样一个简单的元素:
<link rel="import" href="bower_components/polymer/polymer.html">
<dom-module id="dom-test">
<template>
<div>
<hr>
<span id="something">Something</span>
<p>This is the local DOM</p>
<p>Adding the contents:</p>
<content></content>
<p>End of contents!</p>
<hr>
</div>
</template>
<script>
Polymer( {
is: 'dom-test',
ready: function(){
var self = this;
console.log( this.root );
SELF = self;
}
})
</script>
</dom-module>
注意:我知道SELF是一个全局变量。然后使用.html文件中的元素:
...
<link rel="import" href="dom-test.html">
...
<dom-test><p>SECOND</p></dom-test>
...
如果我在Chrome控制台中键入SELF.root
,我只得到#document-fragment
。任何查询其内容的尝试都不起作用:
SELF.root.children
[]
更令人困惑的是,仍在文档中:
调用append/insertBefore会将节点添加到父级的灯光DOM中。为了插入/附加到自定义元素的本地DOM中,请使用本地DOM中的一个节点作为父节点(或this.root,它是本地DOM的根)。
我是不是错过了什么?如何在Chrome控制台中查看元素的LOCAL DOM?
在处理Polymer的自定义元素时,任何DOM操作都应该使用Polymer.DOM处理。来源:https://www.polymer-project.org/1.0/docs/devguide/local-dom.html#dom-api
Polymer.dom(SELF.root).children
如果您在元素的声明之外引用它,也会更好。因此,您不应该声明一个全局SELF
变量来引用元素,而应该使用document.querySelector
或document.getElementById
并从那里开始工作(除了每次将dom-test
元素附加到DOM时都会重写SELF
这一事实之外)。
相关文章:
- Javascript/Css导航未显示在jquery文档上,仅在ie中准备就绪
- 显示“<script src='some.js'></脚本>"在Html文档中
- 服务器上的 Meteor.publish 不会在客户端上显示新文档
- 我该如何在旅途中添加一些段落,并将结果显示在带有段落标记的文档中
- 文档的第一行.写的格式不正确,有时无法显示
- 我想在灯箱中显示pdf文档
- 如何在对话框中显示文档集欢迎页面
- Nodejs MongoDB 本机驱动程序不显示文档
- 有效地突出显示文档中的文本 (JavaScript)
- 无法使用 DerbyJS 在视图中显示文档列表
- 如何显示文档中所有元标记的名称属性
- 拒绝显示文档,因为X-Frame-Options禁止显示
- 检测方式“;拒绝显示文档,因为X-Frame-Options禁止显示"错误
- 如何突出显示文档中输入到搜索框中的单词?
- 打印预览上不需要的滚动条,不显示文档的第二页
- 在网页中高亮显示文档中的单词
- Javascript循环显示文档中的隐藏元素(Jquery也可以)
- 如何为ReSharper注释以便智能感知显示文档
- 在iframe中嵌入instagram/youtube页面“;拒绝显示文档,因为X-Frame-Options禁止显示&
- 如何根据所选的下拉选项显示文档