jquery append()标签不起作用

时间:2014-04-29 11:06:36

标签: jquery append

示例:

<div>
    <h1>hello</h1>
    <span>world</span>
</div>
<div>
    <h1>hello2</h1>
    <span>world3</span>
</div>
<div>
    <h1>hello4</h1>
    <span>world5</span>
</div>

JS:

$('div').each(function(){
        var $zag = $(this).find('h1');
    $(this).append('<div style="color:red">' + $zag + "</div>");
    });

我想将'h1'替换为新的'div'。这个方案给出了错误[Object object]这个小提琴http://jsfiddle.net/q2CxV/

添加:我想要这个:

<div>
    <div style="color:red">
      <h1>hello</h1>
      <span>world</span>
    </div>
</div>
<div>
    <div style="color:red">
      <h1>hello2</h1>
      <span>world3</span>
    </div>
</div>
<div>
    <div style="color:red">
       <h1>hello4</h1>
       <span>world5</span>
    </div>
</div>

4 个答案:

答案 0 :(得分:0)

$zag将为您提供DOM个对象。我想你想要它是html所以

试试这个

$('div').each(function(){
  var $zag = $(this).find($('h1'));
  $(this).append('<div style="color:red">' + $zag.html() + "</div>");
});

DEMO

<强>更新 要删除现有的“h1”并使用div标签附加它,请使用下面的

$('div').each(function(){
  var $zag = $(this).find($('h1'));
  $zag.remove();
  $(this).append('<div style="color:red"><h1>' + $zag.html() + "</h1></div>");
});

DEMO

答案 1 :(得分:0)

要在字符串中替换的对象。

<script>

$('div').each(function() {
    var $zag = $(this).find('h1');
    var div = $('<div/>').css({style: 'color:red'});
    div.append($zag);

    $(this).append(div);
});

</script>

答案 2 :(得分:0)

您可以使用:

DEMO

$('div').each(function () {
    var $zag = $(this).find('h1');
    $zag.wrap('<div style="color:red"/>').parent().appendTo(this);
});

答案 3 :(得分:0)

试试这段代码,它会起作用。

$('div').each(function(){
var $zag = $(this).find('h1');
$(this).wrap('<div style="color:red">' + $($zag)[0].innerHTML + "</div>");
});