3

UPDATED : Please look code below:

<div class='parent'>
    <div class='first'>whatever content</div>
    <div class='child1'></div>

    Paragraph 1
    <br>
    Paragraph 2

    <div class='child2'></div>
    <div class='child3'>whatever</div>

    i don't wanna this text

    <div class='last'>whatever</div>
</div>

How can I get text " Paragraph 1 Paragraph 2 " without text "I don't wanna this text" from that code?

Thank you.

NOTED : I CAN'T EDIT/CHANGE HTML CODE.

4

2 回答 2

4

1 - 如何只获取没有标签的内容:

HTML:

<div class="parent">
    <div class="first">whatever content</div>
    <div class="child1"></div>

    Paragraph 1
    <br>
    Paragraph 2

    <div class="child2"></div>
    <div class="child3">whatever</div>

    Last Content

    <div class="last">whatever</div>
</div>

查询:

var content = $('.parent').clone().children().remove().end().text();
alert(content);

演示:http: //jsfiddle.net/vRbCw/3/

2-如何删除之前的内容div.child3

查询:

var appendSt = $('.child3').after('code:'),
    content  = $('.parent').clone().children().remove().end().text(),
    reg      = content.replace(/code:([^xyz]+)/, '');
alert(reg);

演示:http: //jsfiddle.net/sBSRH/

获取没有子元素的元素文本:http: //viralpatel.net/blogs/jquery-get-text-element-without-child-element/

于 2013-08-01T01:06:19.763 回答
3

你真的应该考虑做一些完全不同的事情。.contents()但是,您可以通过使用并检查是否nodeTypeis来获取文本节点3

var textNodes = $('.parent').contents().filter(function(){
  return this.nodeType === 3 && /[a-z]/g.test(this.nodeValue);
});

我只返回包含至少一个字母的 textNodes。

http://jsbin.com/eziqil/1/edit

如果您想通过.wrap()在集合中使用,您可以将其包裹在一个跨度中以设置样式。

http://jsbin.com/eziqil/2/edit

于 2013-07-31T23:49:09.203 回答