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

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

</div> 

をセレクタない( "classDivは")[0]JavascriptをquerySelectorAllと:document.querySelectorAllを使う

戻り値を.textContent = 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

関連する問題