JavaScript返回[object Object]

时间:2012-08-24 17:52:40

标签: javascript jquery

我正试图让这个运行

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

但它只是给了我[object Object]。因为我只用$('#info')替换它.content()的工作正常。

4 个答案:

答案 0 :(得分: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

答案 1 :(得分: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/

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

$('#info').contents().&lt; - 像这样

开头