用jQuery包装文本

时间:2009-10-05 14:21:40

标签: jquery

我有办法将此div中的文本换行到<p></p>吗?

<div class="remove">
<h2 class="MsgHead">Messages</h2>
<img height="16" width="16" src="img.jpg"/>
Error saving details
<img height="16" width="16" src="img.jpg" alt="information"/>
Please check your entries  and try again
</div>

我的意思是那些在任何标签之外的句子(内部删除)

3 个答案:

答案 0 :(得分:3)

假设你希望最终得到

<div class="remove">
  <h2 class="MsgHead">Messages</h2>
  <img height="16" width="16" src="img.jpg"/>
  <p>Error saving details</p>
  <img height="16" width="16" src="img.jpg" alt="information"/>
  <p>Please check your entries  and try again</p>
</div>

并借用How do I select text nodes with jQuery?

中的一些代码

我想出了这个。 (我没有测试过,但是,即使它不起作用,希望你能得到一般的想法。)

$('div.remove')
  .contents()
  .filter(function() {
    return this.nodeType == Node.TEXT_NODE;
  }).wrap('<p/>');

答案 1 :(得分:0)

$('<p></p>').html($('div.remove').html())

答案 2 :(得分:0)

不是你当前使用的标记,我的意思是理论上你可以,但你似乎想要包装的标记由标题元素组成,你不能放置块元素(哪个标题是内部段落元素。 (我假设你想要<p>内的<div>标签,如果你真的想将<div>本身包裹在<p>中那么实际上会在IE中引发错误)。