javascript - 当我操作其中一个 DOM 父元素时,是否可以阻止 <script> 元素中的代码再次运行?

标签 javascript jquery dom

这是我想做的事情的简化版本。页面上有一段 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 父元素时,是否可以阻止 &lt;script&gt; 元素中的代码再次运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5010943/

相关文章:

jquery - 使用 jQuery 将类添加到 DOM 对象数组的正确方法是什么?

Flash 电影上的 javascript 对话框

javascript - 用于通过::after 修饰符添加的内容的 DOM 选择器

javascript - 在 chrome 扩展中上传文件

javascript - 在功能性 React 组件之外声明变量

javascript - 如何使用 JQuery 应用的 CSS 类正确创建可编辑的 "Font Tester"类型编辑器?

JQuery 将类添加到父对象

Javascript document.getElementById ("id").value 在元素为空文本框时返回 null 而不是空字符串

javascript - 使用 Javascript 读取服务器端文件

javascript - 按日期检查jquery中是否是假期的功能