这是我想做的事情的简化版本。页面上有一段 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>
的情况下防止这种情况发生?或者它包含的代码?
最佳答案
在包装 div
之前,您可以从中删除所有脚本标签:
var theDiv = $('#wrap-this');
theDiv.find('script').remove();
theDiv.wrap($('<div id="new-div"/>'));
关于javascript - 当我操作其中一个 DOM 父元素时,是否可以阻止 <script> 元素中的代码再次运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5010943/