2 jesseszr jesseszr 于 2017.09.13 11:35 提问

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个回答

q213546879
q213546879   2017.09.13 15:34
已采纳

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

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

id.lastChild.nodeValue

js会把文本当成一个node

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

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

jesseszr
jesseszr 亲测可行
2 个月之前 回复
qq_39388178
qq_39388178   2017.09.13 12:25

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

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

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

sunny_desmond
sunny_desmond   2017.09.13 16:33

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

huang931027
huang931027   2017.09.13 17:37

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

u011781616
u011781616   2017.09.13 22:49

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

Csdn user default icon
上传中...
上传图片
插入图片