jquery:在两个元素之间获取文本

时间:2013-03-15 05:01:45

标签: jquery html

我有一个像这样的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>

现在,我需要获取标记范围所抵抗的行的文本... 我已经有两个元素(领先&lt; br&gt;和&lt; span&gt;)

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

但是如何在这些文本之间获取文本?

我已经尝试了几种解决方案 但问题是两个元素之间的文本不是一个自己的元素......

想法?

3 个答案:

答案 0 :(得分:1)

您可以使用previousSibling属性:

document.getElementById('marker').previousSibling;

previousSibling会返回一个对象,如果您想要获取其中的文字内容,可以使用textContentnodeValuewholeText属性。

http://jsfiddle.net/udsZe/

答案 1 :(得分:1)

如果您想要检索This is line 4,那么您可以这样做:

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

alert(text[0]);

演示:http://jsfiddle.net/Bg9PT/

答案 2 :(得分:0)

nextUntil会帮助你..查看链接

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