0

HTML タグの直下にあるテキストを抽出する必要があります。たとえば、HTML が次のようになっているとします。

<span>This is Outside Text
      <span>This is Inside Text</span>
</span>

次に、「This is Outside Text」のみを抽出し、「This is Inside Text」を抽出する方法が必要です。「innerHTML」、「innerText」、「textContent」を試し、RegEx も使用しようとしました(ただし、あまり得意ではありません)。しかし、解決策を見つけることができません。

いくつかの技術的な制約により、jQueryではなく「プレーンな」Javascript のみを使用する必要があることに注意してください(Javascript に他ならないことはわかっていますが、このソリューションでの使用は禁止されています)。

4

3 に答える 3

1

あなたのHTML構造でこれを試すことができます - DEMO

alert ( document.querySelector( "span" ).firstChild.nodeValue );
于 2013-03-23T20:12:13.153 に答える
0

このようにできます。2 番目のスパンの後にさらにテキストがある場合にも機能します。

 <span id="span1">This is Outside Text
  <span id="span2">This is Inside Text</span>
 </span>


var element = document.getElementById("span1");
var element2 =  document.getElementById("span2");

var text = element.textContent.replace(element2.textContent, "");

alert(text);

http://jsfiddle.net/btevfik/y58xJ/

于 2013-03-23T20:15:57.983 に答える
0

テキストの子 (タイプ 3 の childNodes) を探しています。

var children=document.getElementById("mySpan").childNodes,
    count=children.length,
    text="";

for (var i=0;i<count;i++) {
    if (children[i].nodeType==3) {
        text+=children[i].nodeValue;
    }
}

ライブデモ: http://jsfiddle.net/aDgPj/

于 2013-03-23T22:04:30.400 に答える