所以我的 dom 生成 div<div id="test">random text goes here</div>
是否可以 jquery 在这个 div 中插入一个 span 标签,例如:<div id="test"><span>random text goes here</span></div>
问问题
283 次
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 回答