这是一个非常广泛的问题。希望我可以简化它。我的身体中有以下HTML
<span>my <strong>text</strong> section seems to <a href="#">be</a> here</span>
我想得到这个范围的文字。我知道我可以使用Range对象然后使用.tostring()。但是,我怎样才能以正确的顺序获得所有部件?
答案 0 :(得分:1)
如果您要做的就是获取该范围内的文字,您可以这样做:
document.getElementsByTagName( 'span' )[ 0 ].innerText
如果你特别想要一个结果数组,分成几部分,我写了一个快速函数来完成这个:
function getText( node ) {
var children = node.childNodes,
len = children.length,
arr = [],
child, i;
for ( i = 0; i < len; i++ ) {
child = children[ i ];
if ( child.nodeType === 3 ) arr.push( child.data );
else arr.push.apply( arr, getText( child ) );
}
return arr;
}
这是一个JSFiddle:http://jsfiddle.net/nxgcd/1/
答案 1 :(得分:0)
如果您只想在不使用RegEx的情况下获取没有HTML的文本,那么只需使用:
document.getElementById("theSpan").innerText
//or
$("#theSpan").text() //Jquery
这是Javascript和Jquery JSFiddle