【问题标题】:Get text with html tags from main DIV by jquery?通过jquery从主DIV获取带有html标签的文本?
【发布时间】:2013-06-18 13:06:21
【问题描述】:

如何获取带有 html 标签的文本,但只能从主 DIV 获取?不形成其他 DIVS。

这里是例子,但是有一些问题,因为文本没有html标签br />

jsFiddle DEMO

HTML

<div id='parent'>
    this text is <br />for parent

   <div id='child-parent'> 
     this text if for child-parent  
       <div id='child'>
        and this text is for child.   
       </div>   
   </div>
</div>

jQuery

alert($('#parent').clone().children().remove().end().html());

【问题讨论】:

  • $.text() 返回不带标签的内容字符串。
  • @Broxzier -- 他想要那些标签。
  • 你能解释一下你期望从这个例子中返回什么吗?
  • 但是我想返回带有标签的字符串。
  • alert($('#parent').find(':not(br)').remove().end().html());

标签: jquery text


【解决方案1】:

我更新了你的小提琴并使用了不同的策略来删除最后一个元素

http://jsfiddle.net/F6AeM/1/

var parent = $('#parent').clone();
$(parent).find('#child-parent').remove();
alert($(parent).html());

不知道为什么会这样,但你的不行,但是你去吧。

【讨论】:

  • 谢谢,它工作得很好:)...但是如果这些 ID 将被创建,以及是否有更多的 DIV 需要删除,是否有解决方案?这就是为什么我使用 ".clone().children().remove().end().html()" 的原因
  • 如果总是div,你可以把选择器改成“div”。就像在这个小提琴中一样。 jsfiddle.net/F6AeM/4 这将删除每个 div 而不仅仅是最后一个。
【解决方案2】:

假设child-parentchild 总是有一个id

var clone = $('#parent').clone();
clone.children().filter(function () {
    return $(this).is('[id]');
}).remove();

console.log(clone.html());

演示---&gt;http://jsfiddle.net/F6AeM/5/

【讨论】:

  • 那真的不行,不是返回BR标签,只是输出换行符,就是中间节点的nodeValue。
  • 谢谢,它工作正常。有趣且简单的解决方案。如果我想使用其他标签进行这样的文本格式 - jsfiddle.net/ynternet/F6AeM/6 ?
  • 谢谢,每个解决方案都对我有帮助。最后我改变了我原来剧本的概念。谢谢你的帮助......我必须保存你的两个脚本,因为它们对我来说很有趣:)
猜你喜欢
  • 2013-12-01
  • 2012-03-02
  • 2017-09-07
  • 1970-01-01
  • 2023-03-10
  • 2012-07-14
  • 2014-04-15
  • 2019-06-12
  • 1970-01-01
相关资源
最近更新 更多