2017-02-12 53 views
0
<div class="classDiv"> 

<span id="mySpan"> TEXT 1 </span> TEXT 2 

</div> 

使用document.querySelectorAll( 「classDiv」)[0] .textContent的Javascript querySelectorAll和:沒有選擇

回報= TEXT 1個TEXT 2

我怎樣才能得到只有TEXT 2?

我試過:沒有(跨度)沒有成功。

感謝

+0

看看這個,它是jQuery,但我希望你會得到的重點http://stackoverflow.com/questions/7063408/how-to-get-text-only-from-the-div-when -it-has-child-elements-with-text-using-jqu –

回答

3

沒有什麼內置的,我所知道的是,但你可以添加一個函數來提取的元素的直接子文本節點:

function getDirectText(node) { 
    var text = ''; 

    for (var i = 0; i < node.childNodes.length; i++) { 
     var child = node.childNodes[i]; 

     if (child.nodeType === 3) { // Node.TEXT_NODE 
      text += child.nodeValue; 
     } 
    } 

    return text; 
} 

,然後:

var text = getText(document.getElementsByClassName('classDiv')[0]); 

您可能還想修剪空白的結果。

+0

我在寫自己的答案的時候分心了,徘徊回來找到你的;因爲我自己的答案和你的答案只是略有不同,似乎毫無意義地加入我自己的答案,所以如果你認爲這是一個有用的選擇,我會很高興,如果你想將它添加到你的答案:https://jsfiddle.net/davidThomas/num9zf3b/:)(儘管我選擇返回Array,而不是將它連接在一起。) –

+0

@DavidThomas:我認爲這是一種很好的ES6方式;如果你添加它,我會投它。 =) – Ryan

相關問題