2015-10-05 43 views
-4

我有了这个代码(TH是我的表头DOM元素):Javascript appendChild将元素添加到DOM两次?

var typeIndicator = document.createElement('span'); 
typeIndicator.innerText = "A"; 
TH.appendChild(typeIndicator); 

发生的事情是它追加2个<span>元素,而不是一个。任何人有过这个问题吗?

+0

检查使用您显示的代码;这里没有错。 – raina77ow

+0

这是不是完整的代码,添加完整的代码 – Tushar

+1

这是如何调用代码snipplet。这个问题在别的地方。我的猜测是你不知何故绑定了事件处理程序不止一次。 – epascarello

回答

1

大多数情况下,双重或多重事件触发意味着您的代码中的某处您不止一次地分配了相同的事件侦听器。

首先检查你的循环(如果有的话),然后我建议你在代码片段的上方放一个debugger;声明并使用浏览器的开发工具调试程序流程。

P.S .:我会评论而不是回答,如果我只有足够的声誉。如果你可以请给你的代码片段添加一些上下文(就像更多的封装代码一样,或者尝试在jsFiddle中重现你的问题),我可能会扩展我的答案。

+0

收听这个文件 –

+0

感谢您的迅速回复!我发现这个问题:函数被调用两次:(现在我正在寻找一种方法来检查TH节点是否有'span'类型的子节点,以便在执行代码块之前进行额外检查。 – bitstream

+0

@bitstream I可能会将你重定向到SO上的这个问题:[如何检查元素是否存在于可见DOM中?](http://stackoverflow.com/questions/5629684/how-to-check-if-element-exists-in-the -visible-dom),但我建议你考虑使用像jQuery这样的框架,如果你对你的项目没有任何特定的要求。 – LaXiS

相关问题