使用jquery从div中提取部分内部文本

时间:2012-07-31 20:12:38

标签: jquery html

如何提取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 =“我只想看到这条消息”

4 个答案:

答案 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();

FIDDLE

答案 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()​​​​​​​);