gpt4 book ai didi

jquery - jQuery 中未记录的行为?

转载 作者:行者123 更新时间:2023-12-01 00:14:17 24 4
gpt4 key购买 nike

是否记录了以下行为(即我应该依赖它)吗?

由于错误,我出现了一个对话框,并使用 JavaScript 中的裸词引用了它的 id。令人惊讶的是,我没有收到错误,并且代码按预期工作,

示例(在 JSFiddle.net here 上)有 2 个简单的对话框

<div id="Hello">
<input id="box1" name="box1" type="text" value="not change">
</div>
<div id="Goodbye">
<input id="box1" name="box1" type="text" value="not change">
</div>

JavaScript 缺少行 Hello = $("#Hello");.

$("#Hello").dialog({
autoOpen:false,
modal:true,
width:"auto"}
);
$("#Hello").dialog("open");
$("#Goodbye").dialog("open");
$('[name="box1"]',Hello).val("test");

令人惊讶的是,最后一行更新了 Hello div 中的文本框,但我找不到记录此行为的任何地方。它只是一个不明显的副作用,不值得依赖,还是这是一个有效的 jQuery 选择器样式?

仅供引用,我使用的是 Chrome 版本 32.0.1700.107 m。

最佳答案

是的,这是预期的行为。由于页面上有一个 id 为“Hello”的元素,因此会在指向该元素的窗口上自动定义一个属性,相当于:

window.Hello = document.getElementById("Hello");

这在所有浏览器中已经存在相当长一段时间了,我不确定它在哪里,甚至是否有记录。 jQuery 没有这样做。

http://jsfiddle.net/w4YJw/

通常建议不要依赖于此,因为通过定义与 id 命名相同的变量可以很容易地破坏它。它还会破坏一些功能,例如,提供提交按钮 id="submit" 将导致无法调用 form.submit()

关于jquery - jQuery 中未记录的行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21760993/

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