段落中锚元素之间的文本

时间:2011-09-05 16:09:12

标签: javascript jquery

我有一个带有文字和锚点的段落。

在段落中给定一个锚$myAnchor,我可以得到紧随其后的一个:

  

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

如何在这两个锚点之间获取文本/ HTML?

3 个答案:

答案 0 :(得分:2)

你走了:

$myAnchor[0].nextSibling.nodeValue

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

因此,nextSibling将为您提供对下一个兄弟节点(这是一个Text节点)的引用,然后nodeValue将返回该Text节点的文本内容。

[0]之后需要$myAnchor因为nextSibling是DOM节点的属性,而不是jQuery对象,[0]从jQuery对象返回第一个DOM元素。

您最后还可以使用.trim()来摆脱无用的空白区域(如果有的话)。

答案 1 :(得分:0)

编辑:被误解的问题。

见这里:http://jsfiddle.net/RkEwR/

使用.contents()

答案 2 :(得分: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();

如果你知道中间只有一个元素你可以使用所描述的nextSibling方法。