这就是我想要做的事情:
var x = $("<div><div class='aaa' /></div>").find('.aaa').replaceWith("hi");
alert(x);
警报的结果是object
我需要<div>hi</div>
答案 0 :(得分:1)
.replaceWith
返回已删除的元素,因此您需要保存初始对象。此外,您不能依赖元素的outerHTML
属性。
var x = $("<div><div class='aaa' /></div>");
x.find('.aaa').replaceWith("hi");
var div = x.get(0);
alert("<" + div.tagName + ">" + div.innerHTML + "</" + div.tagName + ">");
答案 1 :(得分:1)
使用.end()
关闭find
操作,以便您可以访问修改后的内容。
var x = $("<div><div class='aaa' /></div>").find('.aaa').replaceWith("hi").end();
x
是一个jQuery对象,这就是你获得[object Object]
的原因。您可以直接以x[0]
或x.get(0)
。
您可以使用以下语句
测试预期结果alert(x[0].outerHTML);
请注意,Firefox不支持outerHTML
。