如何提取div的文本部分,省略内部html标签的文本
这是div
<div class="MessageBox">I want to see only this message<span....>Click Here to collapse</span></div>
这是javascript函数中的jquery
var message= $(".MessageBox").text();
现在我得到了 message =“我只想看到此消息点击此处折叠”
我想要message =“我只想看到这条消息”
答案 0 :(得分:3)
您可以使用clone()
方法克隆主元素,然后删除该克隆的子元素以丢弃您不需要的部分:
var clone = $('.MessageBox').clone();
clone.children().remove();
var message = clone.text();
当然,您可以跳过克隆部分。但是你实际上是要删除页面中的元素,我不确定你是否想这样做。克隆主元素后,您可以操作它的副本,而不是用户实际看到的副本。
答案 1 :(得分:2)
您可以为仅为文本的节点类型(排除元素)筛选选择器,并获取如下文本:
var text = $('.MessageBox').contents().filter(function() {
return this.nodeType == 3;
}).text();
答案 2 :(得分:1)
尝试:
$('.MessageBox')
.clone() //clones the element
.children() //selects all the children
.remove() //removes all the children
.end() //again goes back to selected element
.text(); //gets the text of element
<强> jsFiddle example 强>
答案 3 :(得分:0)
当然,你可以这样做:
div = $('.MessageBox').clone();
inner = div.children();
inner.remove();
alert(div.text());