段落中锚元素之间的文本

3

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

给定段落中的一个锚点$myAnchor,我可以获取紧随其后的一个:

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

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


我认为这就是你要找的内容:https://dev59.com/rHRB5IYBdhLWcg3w4bAo - Miquel
3个回答

2

请看以下内容:

$myAnchor[0].nextSibling.nodeValue
演示: http://jsfiddle.net/3Xp6G/1/ 所以,nextSibling会给你一个引用到下一个兄弟节点(一个文本节点),然后nodeValue将返回该文本节点的文本内容。
顺便说一下,在$myAnchor之后需要使用[0],因为nextSibling是DOM节点的属性,而不是jQuery对象的属性,[0]从jQuery对象中返回第一个DOM元素。
您还可以在末尾使用.trim()来摆脱无用的空格(如果有的话)。

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

0

要获取两个锚点之间的文本,可以像这样操作。

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方法。


0

1
这将返回锚点的文本,而不是两个锚点之间的文本。 - Miquel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接