2017-02-06 35 views
0

我想要檢索的數據放到一個字符串或者可能是一個數組,並能夠打印出來到頁面上。這是我迄今爲止,但它沒有工作。任何人都可以請告訴我如何將node.data放入字符串或數組形式?獲取節點的數據轉換成字符串JS

`function neww(node) { 
    if (node.nodeType==Node.TEXT_NODE) { 
     var a=node.data; 
     document.getElementById("demo").innerHTML =a; 
    }}` 
+0

我沒有在Chrome中看到一個問題,當我傳遞一個DOM''通過創建document.createTextNode'對象Text':https://jsfiddle.net/gj8b42zv/你在使用作爲'東西方婦女網絡參數'?你使用的是什麼瀏覽器? – apsillers

+0

功能GETT(){ 東西方婦女網絡(w.document.body);我也使用firefox – newbie

+0

'document.body'不是文本節點(注意'document.body == Node.ELEMENT_NODE'),所以你的函數在'if'檢查失敗後什麼也不做。您設計您的函數,在文本節點只工作,因此它似乎是一個非文本節點上什麼都不做你想要什麼。你究竟*想做什麼?將'body'傳遞給'neww'時應該發生什麼?你是否應該在div中完全複製'body',或者僅僅是文本? – apsillers

回答

0

是否有一個原因,你沒有將它分配給窗口上的var? (也許你不想要一個全局變量?)

`<script>window.INITIAL_STATE = ${JSON.stringify(initialState)}</script>` 
+0

我不能使用jQuery你可以請explaion? – newbie

+0

不確定你的意思,這裏沒有jQuery,這是一個ES6字符串中的變量https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Template_literals –

0

這是很難準確地回答這個問題。你沒有提供這個函數的上下文。

在我看來,你的函數應該工作正常。你的代碼的其他部分必須打破它。

我的第一個猜測 - 您在頁面加載之前調用此函數。也就是說,你正嘗試將文本插入到元素中。但是,這個元素甚至還沒有創建。


如果是這樣的話(你沒有提供的上下文,所以我不知道),那麼你應該使用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... 
}; 

這是最好的答案,我可以提供給你的信息有限。如果你可以展示更多你的程序/提供更多信息,我可以提供更好的答案。