1

所以我的 dom 生成 div<div id="test">random text goes here</div>是否可以 jquery 在这个 div 中插入一个 span 标签,例如:<div id="test"><span>random text goes here</span></div>

4

6 回答 6

4

尝试使用wrapInner如下功能,

$('#test').wrapInner('<span/>');
于 2012-05-18T17:37:23.453 回答
1

您正在寻找wrapInner()方法

于 2012-05-18T17:37:12.233 回答
1

当然,请查看$.wrapInner()

包装元素

/* Wrap an HTML structure around the content of each matched element */
$("#test").wrapInner("<span>");

回调函数

或者,您可以使用匿名函数来获得更多控制权:

$("#test").wrapInner(function() {
  return '<span class="' + this.id + '" />';
});

这会将id值应用为类名:

<div id="test">
  <span class="test">random text goes here</span>
</div>
于 2012-05-18T17:37:39.087 回答
1

$.wrapInner像这样使用

$('#test').wrapInner('<span/>');
于 2012-05-18T17:38:13.583 回答
1

或者,如果您想完全控制您的内心事物(例如您还想对您的方法进行一些修改),您可以这样使用它:

$("div#test").append(function () {
    //you can refer to the object you are making modifications in as 'this'
    var txt = $(this).text();
    //do your modifications for the 'txt' if needed
    //..
    //finally use return statement to return the value or
    //object you need to the original append function
    //$("<span>") creates a span html element
    return $("<span>").text(txt);
});

这个问题已经被很多人用 wrapInner() 方法回答了,我只是想告诉你如何在函数内部创造一些“魔法”

于 2012-05-18T17:43:46.747 回答
0

正如其他人回答的那样,您可以使用wrapInner. 否则你可以通过使用html方法来做到这一点

$('#test').html($('<span>').html($('#test').html()));

小提琴:http: //jsfiddle.net/zcg9B/

于 2012-05-18T17:44:20.807 回答