2011-09-05 46 views
3

我有一段文字和锚点。段落中的锚元素之间的文本

鉴于段落中的锚$myAnchor,我可以得到一个紧接一个:

$nextAnchor = $myAnchor.next('a');

我如何获得这两个锚之间的文本/ HTML?

+0

我认为这是你在找什么: http://stackoverflow.com/questions/481076/jquery-how-to-select-all-content-between-two-tags – Miquel

回答

2

在这里你去:

$myAnchor[0].nextSibling.nodeValue 

现场演示:http://jsfiddle.net/3Xp6G/1/

所以,nextSibling会给你一个参考到下一个兄弟节点(这是一个Text节点),然后是nodeValue将返回该文本节点的文本内容。

[0]顺便说一句之后$myAnchor因为nextSibling是DOM节点,而不是jQuery的对象的属性必需的,并且[0]返回从jQuery对象的第一DOM元素。

您还可以在末尾使用.trim()以摆脱无用的空白(如果有的话)。

+0

谢谢。这个低级解决方案是跨浏览器吗? – Randomblue

+0

@Randomblue是的。 –

0

编辑:被误解的问题。

在这里看到:http://jsfiddle.net/RkEwR/

使用.contents()

+1

这返回的文本主播,而不是两个主播之间的文本 – Miquel

0

要获得2锚之间的文本o可以做这样的事情。

var a1 = $('#anchor1'); 
var a2 = $('#anchor2'); 

var contents = a1.parent().contents(); 

var s, e; 
for(var i = 0; i<contents.length; i++){ 
    if($(contents[i]).is(a1)){ 
     s = i 
    } 
    if($(contents[i]).is(a2)){ 
     e = i 
    } 
} 

var text = contents.slice(s + 1,e).text().trim(); 

如果您知道只有一个元素betewwen u可以使用所描述的方法nextSibling