gpt4 book ai didi

javascript - jQuery.clone() 导致浏览器挂起

转载 作者:搜寻专家 更新时间:2023-11-01 05:07:08 26 4
gpt4 key购买 nike

为什么以下 jQuery 代码会导致我的浏览器挂起?

注意:除非您准备强行退出浏览器,否则不要运行此程序

<!DOCTYPE HTML> 
<title>Simple clone</title>
<script type="text/javascript" src="jquery.js"></script>

<div>
<script>$('div').clone().appendTo('body');</script>
</div>

编辑

对于“无限循环”阵营的人来说,这应该不是问题。一个完全安全的(非 jQuery)版本是:

  <div>div
<script>
var el = document.getElementsByTagName('div')[0];
document.body.appendChild(el.cloneNode(true));
</script>
</div>

所以这个问题与 jQuery 如何进行克隆特别相关。

编辑2

似乎 jQuery 导致执行克隆中的脚本元素。这不是标准行为,而是关于 jQuery 如何进行克隆的一些非常出乎意料的事情。

最佳答案

因为您正在克隆一个 div,其中包含一个脚本,说明要克隆所有 div。原始 div 的脚本说要克隆所有 div 也被克隆,等等,ad infinitum

当然可以:

  <script type="text/javascript" src="jquery.js"></script> 
<script type="text/javascript">
$(function() {
$('div').clone().appendTo('body');
});
</script>

<div>
Safe Now
</div>

关于javascript - jQuery.clone() 导致浏览器挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8379867/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com