这是我想要做的简化版。在页面上有一段HTML,如下所示:
<div id="wrap-this">
<script>
$(document).ready(function() {
alert('Blah.');
});
</script>
</div>
在我自己的剧本中,我这样做:
$(document).ready(function() {
$('#wrap-this').wrap($('<div id="new-div">'));
});
问题在于,当我使用wrap()
操作DOM时,<div>
中的代码会再次被调用,最终我得到两个alert()
。有没有办法可以在不修改<div>
或它包含的代码的情况下阻止这种情况发生?
答案 0 :(得分:2)
在包装div
之前,您可以从中删除所有脚本标记:
var theDiv = $('#wrap-this');
theDiv.find('script').remove();
theDiv.wrap($('<div id="new-div"/>'));