2015-10-05 151 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

相關問題