当我使用这两位代码时,我遇到了不同的结果。对我而言,它们应该是等同的。有什么不同?
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);
第一个选项用一个表示为字符串的新地图元素替换现有的地图DOM元素。第二个选项删除现有的地图DOM元素,然后附加一个新的地图元素。
这不应该是一样的吗?看起来我的地图区域在调用replaceWith时不刷新。
编辑:第一个不会导致浏览器重新绘制第二个位置?
结果应该是一样的。也许浏览器不重画窗口。 – undefined 2014-11-14 22:09:50
这就是我在想什么。 – 2014-11-14 22:10:52
'replaceWith'有效地做到这一点:'$('#map')[0] .parentNode.replaceChild(newMap);'这绝对是非常接近第二个选项,除非它没有明确地删除旧的内容。 – 2014-11-14 22:17:22