2

我的html是-

​<div>
    <span>spanText</span>
    nonspantext
</div>
​​​​​​

我的js是-

​$(function(){
    alert($("div").text());
});​

我想要得到的是“nonspantext”作为警报。
小提琴开始在这里 - http://jsfiddle.net/UHr2x/

4

2 回答 2

7

您可以使用.contents()获取元素的内容(包括文本节点),然后过滤结果以仅保留文本节点:

$("div").contents().filter(function () {
    return this.nodeType === 3;  
}).text();

这是一个工作示例。请注意,结果包含新行,因此您可能希望在使用之前对其进行修剪。

于 2012-10-11T13:23:56.453 回答
1

嗯,这是一个很好的使用旧 DOM API 的用例。

$('span')[0].nextSibling.nodeValue;

和一个工作示例

似乎比詹姆斯的解决方案更有效。

于 2012-10-11T13:36:07.837 回答