我有一个带文本和锚点的段落。
给定段落中的一个锚点$myAnchor
,我可以获取紧随其后的一个:
$nextAnchor = $myAnchor.next('a');
如何获取这两个锚点之间的文本/HTML呢?
我有一个带文本和锚点的段落。
给定段落中的一个锚点$myAnchor
,我可以获取紧随其后的一个:
$nextAnchor = $myAnchor.next('a');
如何获取这两个锚点之间的文本/HTML呢?
请看以下内容:
$myAnchor[0].nextSibling.nodeValue
演示: http://jsfiddle.net/3Xp6G/1/
所以,nextSibling
会给你一个引用到下一个兄弟节点(一个文本节点),然后nodeValue
将返回该文本节点的文本内容。$myAnchor
之后需要使用[0]
,因为nextSibling
是DOM节点的属性,而不是jQuery对象的属性,[0]
从jQuery对象中返回第一个DOM元素。.trim()
来摆脱无用的空格(如果有的话)。要获取两个锚点之间的文本,可以像这样操作。
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
方法。