无法获取replaceWith的字符串结果

时间:2011-09-12 06:58:08

标签: javascript jquery

这就是我想要做的事情:

var x = $("<div><div class='aaa' /></div>").find('.aaa').replaceWith("hi");
alert(x);

警报的结果是object我需要<div>hi</div>

2 个答案:

答案 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