Jquery - 在2个Div标签之间获取文本

时间:2013-07-31 23:31:56

标签: jquery css jquery-selectors

更新:请查看以下代码:

<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>

如何获取文字“第1段第2段” 没有文字“ 我不想这个文字 ” 从那个代码?

谢谢。

注意: 我无法编辑/更改HTML代码

2 个答案:

答案 0 :(得分: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>

<强> JQUERY:

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

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

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

<强> JQUERY:

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/

答案 1 :(得分:3)

你应该真正考虑做一些完全不同的事情。但是,您可以使用.contents()获取文本节点,并检查nodeType是否为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