JQuery – 如何将带有br的html转换为带有p的html?

在我的页面上我有这样的
HTML

hi<br>bye<br>sigh<br>hello <em>tie</em><br>lie 

使用jquery,我怎样才能将它转换为这样的html(基本上使用p而不是br):

<p>hi</p><p>bye</p><p>sigh</p><p>hello <em>tie</em></p><p>lie</p> 

我第一次尝试这样做的代码是:

$(container).contents().filter(function() {
                var val = this.nodeValue;
                return this.nodeType == TEXT_NODE && $.trim(val).length > 0;
            })
            .wrap('<p></p>')
            .end()
            .filter('br')
            .remove();

除了hello和< em> tie< / em>之外,这大部分都有效.不会在同一个p元素中.

有谁知道我怎么能做到这一点?

最佳答案 简单的JavaScript解决方案

var obj = document.getElementById('container'),
    str = obj.innerHTML,
    ar = str.split('<br />'),
    result = "";
for(var i = 0; i < ar.length; i++)
{
 result += '<p>' + ar[i] + '</p>';
}
obj.innerHTML = result;

我不知道如何用jQuery做这个…

点赞