3

我正在尝试让它运行

$('#info').replaceWith('<div id="infobox" class="reveal-modal">'+$('#info').contents()+'<a class="close-reveal-modal">&#215;</a></div>');

但它只是给了我[object Object]。因为我只用 $('#info').contents() 替换它,所以一切正常。

4

4 回答 4

4

尝试:

$(function(){
    var content = $('#info').get(0).outerHTML;
    $('#info').replaceWith('<div id="infobox" class="reveal-modal">'+content+'<a class="close-reveal-modal">&#215;</a></div>');
})

$('#info').get(0).outerHTML回报<div id="info">anything</div>。_ 但是,如果只想要内容,请使用$('#info').html(),返回anything

于 2012-08-24T17:55:55.007 回答
2

如果您尝试维护现有内容并将其放在外部 div 中,请尝试使用wrap(),您可以调用after()添加关闭锚点。

$('#info').wrap('<div id="infobox" class="reveal-modal">')
    .after('<a class="close-reveal-modal">&#215;</a>')

工作示例:http: //jsfiddle.net/hunter/qU4s3/


也可以这样写:

$('#info')
    .wrap($('<div>', { id: "infobox", "class": "reveal-modal"}))
    .after($('<a>', { "class": "close-reveal-modal", html: "&#215;" }));

工作示例:http: //jsfiddle.net/hunter/qU4s3/2/

于 2012-08-24T17:56:13.510 回答
1

.contents()返回一个 jQuery 对象,您想要的是.text().html()取决于是否#info包含其他元素。

$('#info').replaceWith('<div id="infobox" class="reveal-modal">'+$('#info').text()+'<a class="close-reveal-modal">&#215;</a></div>');
于 2012-08-24T17:56:40.920 回答
0

$('#info').contents(). <-- 开头,像这样

于 2012-08-24T17:56:57.847 回答