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>

现在,我需要获取标记跨度抵抗所在行的文本...我已经有两个元素(前导 <br> 和 <span>)

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

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

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

想法?

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返回一个对象,如果要获取它的文本内容,可以使用textContent,nodeValuewholeText属性。

http://jsfiddle.net/udsZe/

于 2013-03-15T05:10:15.720 回答
0

nextUntil 会帮助你..查看链接

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

于 2013-03-15T05:11:10.397 回答