如何从具有跨度的Div获取内容?

时间:2011-06-22 14:54:41

标签: javascript

如何从具有某些内容的跨度的Div中获取内容?

<div id="test">
 this is a DIV
 <span>
  This is a span
 </span>
</div>

alert(document.getElementById('test').innerText);

代码警告我这是一个DIV这是一个span.Im希望只从DIV获取内容。

4 个答案:

答案 0 :(得分:5)

使用nodeValue

document.getElementById('test').childNodes[0].nodeValue;

<强> Demo on jsfiddle

答案 1 :(得分:2)

此解决方案将返回目标div中的所有文本,无论它在何处或div中有多少元素。

您可以通过迭代目标元素的子元素并询问哪些是TEXT_NODE来完成此操作。

nodes = document.getElementById('test').childNodes;
text = "";
for(var i=0; i<nodes.length; i++) {
   if(nodes[i].nodeType==document.TEXT_NODE) {
       text += nodes[i].nodeValue;
   }
}
alert(text);

Demo on jsfiddle

答案 2 :(得分:0)

这在技术上有效:

var html = document.getElementById('test').innerHTML;
alert(html.substr(0, html.indexOf('<span>')));

答案 3 :(得分:-2)

使用jquery

<强>已更新

$( “#试验&gt;跨度”)母体()的内容( ':否(跨度)')。文本()