我正在尝试让它运行
$('#info').replaceWith('<div id="infobox" class="reveal-modal">'+$('#info').contents()+'<a class="close-reveal-modal">×</a></div>');
但它只是给了我[object Object]。因为我只用 $('#info').contents() 替换它,所以一切正常。
我正在尝试让它运行
$('#info').replaceWith('<div id="infobox" class="reveal-modal">'+$('#info').contents()+'<a class="close-reveal-modal">×</a></div>');
但它只是给了我[object Object]。因为我只用 $('#info').contents() 替换它,所以一切正常。
尝试:
$(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。
如果您尝试维护现有内容并将其放在外部 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: "×" }));
工作示例:http: //jsfiddle.net/hunter/qU4s3/2/
.contents()返回一个 jQuery 对象,您想要的是.text()或.html()取决于是否#info包含其他元素。
$('#info').replaceWith('<div id="infobox" class="reveal-modal">'+$('#info').text()+'<a class="close-reveal-modal">×</a></div>');
以$('#info').contents(). <-- 开头,像这样