我正试图让这个运行
$('#info').replaceWith('<div id="infobox" class="reveal-modal">'+$('#info').contents()+'<a class="close-reveal-modal">×</a></div>');
但它只是给了我[object Object]。因为我只用$('#info')替换它.content()的工作正常。
答案 0 :(得分:4)
尝试:
$(function(){
var content = $('#info').get(0).outerHTML;
$('#info').replaceWith('<div id="infobox" class="reveal-modal">'+content+'<a class="close-reveal-modal">×</a></div>');
})
$('#info').get(0).outerHTML
返回<div id="info">anything</div>
。但如果只想要内容,请使用$('#info').html()
,然后返回anything
。
答案 1 :(得分:2)
如果您尝试维护现有内容并将其放在外部div中,请尝试使用wrap()
,然后调用after()
添加结束锚。
$('#info').wrap('<div id="infobox" class="reveal-modal">')
.after('<a class="close-reveal-modal">×</a>')
工作示例:http://jsfiddle.net/hunter/qU4s3/
也可以这样写:
$('#info')
.wrap($('<div>', { id: "infobox", "class": "reveal-modal"}))
.after($('<a>', { "class": "close-reveal-modal", html: "×" }));
答案 2 :(得分:1)
.contents()
返回一个jQuery对象,你想要的是.text()
或.html()
,具体取决于#info
是否包含其他元素。
$('#info').replaceWith('<div id="infobox" class="reveal-modal">'+$('#info').text()+'<a class="close-reveal-modal">×</a></div>');
答案 3 :(得分:0)
以$('#info').contents().
&lt; - 像这样