|
|
1
30
更新:对于任何对此感兴趣的人来说,这是我最终使用的实现:
我想要这个的原因是提供一种合成
例如,此设置可以按如下方式使用:
希望这对某人有用。 注意:我最终选择这个解决方案而不是 Darryl's answer 因为只有在同一文档中,getElementById技术才有效;我在一个页面上有一些iframe,页面之间以一些复杂的方式进行通信——当我尝试这样做时,问题是它找不到元素,因为它与它正在执行的代码属于不同的文档。 |
|
|
2
21
最直接的答案是利用
理想情况下,我们会使用
不幸的是,您仍然需要轮询,但检查文档中是否存在元素非常简单:
如果您可以在页面中添加一些CSS,这里有另一种使用动画来检测节点插入的巧妙技术: http://www.backalleycoder.com/2012/04/25/i-want-a-damnodeinserted/ |
|
|
3
8
你不能做一个
|
|
|
4
8
只需使用
你很好。 |
|
|
5
2
A. MutationObserver 您应该使用它来检测元素何时被添加到DOM中。 MutationObserver现在在所有现代浏览器(Chrome 26+、Firefox 14+、IE11、Edge、Opera 15+等)中都得到了广泛支持。
这里有一个简单的例子,说明如何使用
为简洁起见,我使用jQuery语法构建节点并将其插入DOM。
这个
您不需要迭代存储在中的每个MutationRecord
为了提高性能,请更换
|
|
|
6
2
您可以查询 document.getElementsByTagName(“*”).length 或者创建一个自定义appendChild函数,如下所示:
更新 根据要求,将我的评论中的信息添加到我的帖子中 有一个 comment by John Resig 在Ajaxian上的Peppy库上,这似乎表明他的Sizzle库可能能够处理DOM插入事件。我很好奇是否也有处理IE的代码 根据轮询的想法,我读到一些元素属性在元素被附加到文档之前是不可用的(例如element.scrullTop),也许你可以轮询它,而不是进行所有的DOM遍历。 最后一件事:在IE中,一种可能值得探索的方法是使用onpropertychange事件。我认为将其附加到文档中必然会触发至少一个属性的该事件。 |
|
|
7
1
在一个完美的世界里,你可以捕捉到突变事件。我怀疑它们即使在标准浏览器上也能可靠地工作。听起来你已经实现了一个变异事件,所以你可以添加它来使用原生变异事件,而不是在支持这些事件的浏览器上进行超时轮询。
我见过通过比较来监视更改的DOM更改实现
我能想到的改进是
这也可能有所帮助: X browser compareDocumentIndex implementaion by John Resig . |
|
|
8
1
你想要
编辑:IE完全有可能不支持这些事件,但我现在无法测试。 |
|
|
9
0
这是从jQuery代码中提取的问题的另一个解决方案。 以下函数可用于检查节点是否连接到DOM或是否“断开连接”。 function isDisconnected( node ) {
return !node || !node.parentNode || node.parentNode.nodeType === 11;
}
nodeType===11定义了一个DOCUMENT_FRAGMENT_NODE,它是一个未连接到文档对象的节点。 有关更多信息,请参阅John Resig的以下文章: http://ejohn.org/blog/dom-documentfragments/ |
|
10
0
我正在循环中构建dom对象,当循环处于最后一个循环时
左循环:
下一个操作可以使用任何新创建的dom对象。它在第一次尝试中奏效了。 |
|
|
11
-1
没有一个 DOM节点已插入 或 DOM节点插入到文档中 IE支持事件。DOM的另一个缺少的特性是 compareDocument位置 设计用于执行其名称所暗示的功能。 至于建议的解决方案,我认为没有更好的了(除非你做了一些肮脏的技巧,比如覆盖原生DOM成员实现) 此外,更正问题的标题:动态创建的元素从创建之时起就是DOM的一部分,它可以附加到文档片段或另一个元素,但可能不会附加到文档。 我也认为你描述的问题不是你现在遇到的问题,这个问题看起来更像是你问题的潜在解决方案之一。你能详细解释一下这个用例吗? |
|
|
code-geek · Jquery根据单选按钮选择隐藏或显示文本字段 1 年前 |
|
|
Alex · 在轻量级中同时解构和不解构变量 1 年前 |
|
|
Ângelo Rigo · ReactJS映射:如何迭代[关闭] 1 年前 |
|
|
bairog · 从按属性筛选的对象数组字典中创建值数组 1 年前 |
|
|
lokiuucx · JS对象属性返回未定义,尽管对象属性应该有值 1 年前 |