這是很難準確地回答這個問題。你沒有提供這個函數的上下文。
在我看來,你的函數應該工作正常。你的代碼的其他部分必須打破它。
我的第一個猜測 - 您在頁面加載之前調用此函數。也就是說,你正嘗試將文本插入到元素中。但是,這個元素甚至還沒有創建。
如果是這樣的話(你沒有提供的上下文,所以我不知道),那麼你應該使用window.onload
功能。這將確保在試圖操作它們之前加載所有元素。
下面是一個例子:
function insertNodeTextIntoDemoElement(node) {
if (node.nodeType === Node.TEXT_NODE) {
const nodeText = node.data;
const demoElement = document.getElementById('demo');
demoDiv.textContent = nodeText;
}
}
window.onload = function() {
// Other code...
const exampleNode = document.createTextNode('Hello World!');
insertNodeTextIntoDemoElement(exampleNode);
// Other code...
};
這是最好的答案,我可以提供給你的信息有限。如果你可以展示更多你的程序/提供更多信息,我可以提供更好的答案。
我沒有在Chrome中看到一個問題,當我傳遞一個DOM''通過創建document.createTextNode'對象Text':https://jsfiddle.net/gj8b42zv/你在使用作爲'東西方婦女網絡參數'?你使用的是什麼瀏覽器? – apsillers
功能GETT(){ 東西方婦女網絡(w.document.body);我也使用firefox – newbie
'document.body'不是文本節點(注意'document.body == Node.ELEMENT_NODE'),所以你的函數在'if'檢查失敗後什麼也不做。您設計您的函數,在文本節點只工作,因此它似乎是一個非文本節點上什麼都不做你想要什麼。你究竟*想做什麼?將'body'傳遞給'neww'時應該發生什麼?你是否應該在div中完全複製'body',或者僅僅是文本? – apsillers