使用節點,而不是innerHTML的。使用節點可以區分文本和元素。
// reference to first div
var div = document.getElementsByTagName('div')[0];
// reference to first p in first div
var p = div.getElementsByTagName('p')[0];
// get p text using nodes
var pText = p.childNodes[0].nodeValue;
// reference to first span in first div
var span = div.getElementsByTagName('span')[0];
// get span text
var spanText = span.childNodes[0].nodeValue;
使用節點和innerHTML的區別在於,如果您願意,您可以獲得文本。使用此方法,您可以繞過元素中包含的任何HTML並獲取原始文本。
HTML
<p>
2002
<span>2003</span>
2004
</p>
的Javascript
var pText = "";
for(var i=0,l=p.childNodes.length;i<l;i++) {
var node = p.childNodes[i];
// if node is a text node
if(node.nodeType===3)
{ pText += node.nodeValue.trim(); }
}
// 20022004
window.alert(pText)
查看更多關於Node和Node.nodeType。
你考慮使用庫如jQuery?然後你可以做例如''('div#test p')。html()' –