javascript替换p标签的div标签,它没有类

时间:2012-10-04 15:30:06

标签: javascript replace

我想替换p标签的div标签,但仅当div标签没有类时。

所以这个:

<div class="myDiv">
   <div>sdfglkhj sdfgkhl sdfkhgl sdf</div>
   <div>dsf osdfghjksdfg hsdfg</div>
</div>

会变成:

<div class="myDiv">
   <p>sdfglkhj sdfgkhl sdfkhgl sdf</p>
   <p>dsf osdfghjksdfg hsdfg</p>
</div>

我已经尝试了.replace("<div>", "<p>").replace("</div>","</p>"),但这会替换带有类的那个的结束标记。

4 个答案:

答案 0 :(得分:3)

使用:not()选择器和.unwrap() .wrap()

可以使用jQuery轻松完成此操作
$('div:not([class])').contents().unwrap().wrap('<p/>');

http://jsfiddle.net/matthewbj/ujLHk/

答案 1 :(得分:1)

$(document).ready(function () {

  $('div').each(function () {
    var html = this.innerHTML;
    if (! $(this).attr('class')) {
       $(this).replaceWith('<p>' + html + '</p>');
    }
  });
});

答案 2 :(得分:0)

这可能会帮助您使用jQuery选择器来获取没有类的div:

jQuery get all divs which do not have class attribute

答案 3 :(得分:0)

$(document).ready(function()
{
    $('.myDiv div').contents().unwrap().wrap('<p/>');
});

$(document).ready(function()
{
    $('.myDiv div').each(function()
    {
        $(this).replaceWith($('<p>' + $(this).html() + '</p>'))
    });
});