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的情况下获取我要的内容

7个回答

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

 $("#id").text();
q213546879
/*----无忧----*/ 回复jesseszr: 哈哈,这叫当局者迷旁观者清,用text方法注意一点,前面的空格也会被获取到,所以还要去掉空格
大约 2 年之前 回复
jesseszr
jesseszr 666,一开始是用的text(),后来忘了报了个什么错改了几次后改成了html(),一直没搞定,也没意识到用text(),原来真相就在眼前居然没发现
大约 2 年之前 回复

id.lastChild.nodeValue

js会把文本当成一个node

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

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

jesseszr
jesseszr 亲测可行
大约 2 年之前 回复

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

jesseszr
jesseszr 在我的实际场景中$("#xxx").find("td:eq(1)").html();尝试加了下:not(span)没有成功
大约 2 年之前 回复

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

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

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

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!