1

次のような HTML ツリーがあります。

<pre id="code_block">
    This is line 1<br>
    This is line 2<br>
    This is line 3<br>
    This is line 4<span id="marker"></span><br>
    This is line 5<br>
    This is line 6<br>
    ...
</pre>

今、私はマーカースパンが抵抗する行のテキストを取得する必要があります...私はすでに2つの要素(先頭の< br>と<スパン>)を持っています

$('#marker');
$('#marker').prev('br');

しかし、これらの間のテキストを取得する方法は?

私はすでにいくつかの解決策を試しまし
たが、問題は2つの要素の間のテキストが独自の要素ではないということです...

アイデア?

4

3 に答える 3

2

取得したい場合はThis is line 4、次のようにすることができます。

var text = $('#marker').map(function(){
    return this.previousSibling.nodeValue;
});

alert(text[0]);

デモ: http://jsfiddle.net/Bg9PT/

于 2013-03-15T05:13:55.823 に答える
1

プロパティを使用できpreviousSiblingます:

document.getElementById('marker').previousSibling;

previousSiblingオブジェクトを返します。そのテキスト コンテンツを取得する場合はtextContentnodeValueまたはwholeTextプロパティを使用できます。

http://jsfiddle.net/udsZe/

于 2013-03-15T05:10:15.720 に答える
0

nextUntilはあなたを助けるでしょう..リンクをチェックしてください

http://api.jquery.com/nextUntil/

于 2013-03-15T05:11:10.397 に答える