JavaScript返回[对象]

JavaScript返回[对象],javascript,jquery,Javascript,Jquery,我正试着让它运转起来 $('#info').replaceWith('<div id="infobox" class="reveal-modal">'+$('#info').contents()+'<a class="close-reveal-modal">&#215;</a></div>'); $('#info')。替换为('+$('#info')。contents(); 但它只是给了我[对象]。因为我只用$('#info')替换它。

我正试着让它运转起来

$('#info').replaceWith('<div id="infobox" class="reveal-modal">'+$('#info').contents()+'<a class="close-reveal-modal">&#215;</a></div>');
$('#info')。替换为('+$('#info')。contents();
但它只是给了我[对象]。因为我只用$('#info')替换它。contents()一切正常。

试试:

$(function(){
    var content = $('#info').get(0).outerHTML;
    $('#info').replaceWith('<div id="infobox" class="reveal-modal">'+content+'<a class="close-reveal-modal">&#215;</a></div>');
})
$(函数(){
var content=$('#info').get(0).outerHTML;
$(“#info”)。替换为(“+content+”×;”;
})

$('#info').get(0).outerHTML
返回
任何内容。但是如果只是想要内容,请使用
$('#info').html()
,如果您试图维护现有内容并将其放置在外部div中,则返回
任何内容
,然后尝试使用
wrap()
,您可以调用
after()
来添加结束锚定

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


也可以这样写:

$('#info')
    .wrap($('<div>', { id: "infobox", "class": "reveal-modal"}))
    .after($('<a>', { "class": "close-reveal-modal", html: "&#215;" }));
$(“#信息”)
.wrap($('',{id:“信息框”,“类”:“显示模式”}))
。在($('

.contents()
返回jQuery对象后,您需要的是
.text()
.html()
,具体取决于
\info
是否包含其他元素

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

$('#info').contents()开头。
那么,
$('#info').contents()是一个对象,对象的默认字符串表示形式是
[object object]
。你不能只是将字符串与任意对象连接在一起。但是,
.append
应该是
之后和
wrap
应该包含它。你的更新版本看起来更好,对我来说更具意义,正在测试。+1最佳答案,因为它不必不必要地解析HTML。请解释这是如何解决的这个问题?尾随点是什么意思?如果你把它插入OP的代码中,你会得到一个语法错误。