将<span>更改为<p>通过DOM </p> </span>

时间:2011-03-16 23:31:36

标签: jquery

我从插件收到一段HTML代码,我想在代码中将<span class="post-stats">的所有实例更改为<p class="post-stats">。实现这一目标的最佳方法是什么?

5 个答案:

答案 0 :(得分:1)

也许replaceWith()可行吗?

$('span.post-status').replaceWith(function()
{
  return '<p class="post-stats">' + $(this).html() + '</p>';
});

为什么不让<span><p>一样使用CSS,而不是做所有这些事情?将它添加到样式表就足够了。

span.post-status
{
  display: block;
}

或者,如果你坚持使用jQuery:

$('span.post-status').css('display', 'block');

答案 1 :(得分:0)

var spanPostStats = $( 'span.post-stats' );
spanPostStats.replaceWith(
    $( '<p>' ).addClass( 'post-stats' ).html( spanPostStats.html() )
);

http://jsfiddle.net/JAAulde/nEJG2/

答案 2 :(得分:0)

我会用jQuery,看看下面的函数: http://api.jquery.com/replaceWith/

答案 3 :(得分:0)

$('.post-stats').each(function(i,elem){
    $(elem).replaceWith('<p class="post-stats">'+$(elem).html()+'</p>');
});

Here's an example ࢐

答案 4 :(得分:0)

也许您正在寻找.replaceWith

$('span.post-stats').replaceWith(function(){
  return $('<p>').addClass('post-stats').html($(this).contents());
});

<强> Demo

我知道我有点迟了,但不喜欢使用.each.html(.html())方法。我还认为你应该尽可能使用.text().addClass将HTML标记保留在它所属的位置,并保留javascript来操纵属性(y / ies)。