当我使用这两位代码时,我遇到了不同的结果。对我来说,它们应该是等价的。有什么区别?
var mapString = '<map id="map"><area shape="poly" coords="52,21,92,21,92,196,52,196"></map>';
// First option:
$('#map').replaceWith(mapString);
// Second option:
var mapParent = $('#map').parent();
$('#map').remove();
$(mapString ).appendTo(mapParent);
第一个选项用表示为字符串的新map元素替换现有的map DOM元素。第二个选项删除现有的map DOM元素,然后附加一个新的map元素。
这些不应该相同......?调用replaceWith时,我的地图区域似乎没有刷新。
编辑:第一个不会导致浏览器重绘第二个吗?
答案 0 :(得分:1)
结果不一样,因为:
答案 1 :(得分:1)
也许您的网页上有其他脚本错误?在这两种情况下,此代码示例适用于我:
var newContent = '<div id="original">New Content!</div>';
$('#original').replaceWith(newContent);
var parent = $('#original2').parent();
$('#original2').remove();
$(newContent).appendTo(parent);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div>
<div id="original">Original Content 1</div>
</div>
<div>
<div id="original2">Original Content 2</div>
</div>
&#13;