Jquery - 获取两个 Div 标签之间的文本

3

更新:请查看以下代码:

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

我如何从该代码中获取文本“第一段第二段”,而不包括文本“我不想要这段文字”?
谢谢。
备注: 我无法编辑/更改HTML代码

首先,将其放入p元素中。 - user2625787
抱歉,实际上我无法更改代码。 - Naval Navc
很遗憾。你试过Bill的解决方案了吗?它可以处理那种棘手的问题。 - user2625787
无法更改代码?你是指仅能更改HTML,对吗? - doppelgreener
是的,我的意思是我不能编辑HTML代码。 - Naval Navc
2个回答

4

1 - How to get only a content without tags:

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段落2”,而不带有“...”,我该怎么做呢? - Naval Navc

3

你应该考虑完全改变做法。不过,你可以使用.contents()获取文本节点,并检查nodeType是否为3

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

我只返回至少包含一个字母的textNodes。
如果您想为其添加样式,可以使用集合上的.wrap()将其包装在span中。
请参考以下链接:http://jsbin.com/eziqil/1/edithttp://jsbin.com/eziqil/2/edit

这就是为什么你要将它放在p元素中的原因。 - user2625787
当然可以!我回答这些问题是基于他们无法控制HTML的印象下进行的。 - Bill Criswell
不错的想法。我部分回答是为了下一个读到它的人。 - user2625787
哈哈,这就是为什么我说:“你真的应该考虑做完全不同的事情。” - Bill Criswell
抱歉,我尝试了您的解决方案,但我的结果中出现了未使用的文本。我已经更新了关于我的第二个问题的问题。谢谢。 - Naval Navc
对于那些不知道的人来说...匹配单个字母的位实际上是一个小写字母。为了使其更加灵活,可以稍微更改为[a-zA-A0-9]或者使用字符类。关键是,如果这个块对你不起作用,那可能就是原因。 - shao.lo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接