js获取除span以外的内容

假设如下,我要获取“这是我要的”,有什么办法

 <div id="id">
<span class="a"></span>
<span class="b"></span>
...(期间省略n个span)
<span class="z"></span>
这是我要的
</div>

我能想到的是

$("#id").find("span").remove();
var val = $("#id").html();

能不能在不移除span的情况下获取我要的内容

获取一个节点里面的内容(非节点)可以用这个方法

 $("#id").text();

var val = $("#id :not(span)").html();
var val = $("#id").html();
//注意 #id 和 :not(span)中间有空格

id.lastChild.nodeValue

js会把文本当成一个node

因为你这边刚好是最后一个,所以直接用lastChild获取

如果不是最后一个的话
可以用 id.childnodes 获取到所有的,再找出你要的
这个我就不试了。。。

[\s\S]*?用正则,直接将span都替换为""

噗,当时在这个 文本上加个标签不都解决了么

$("#id").text();

$("#id").text(); 最简单了