gpt4 book ai didi

jQuery $() 与 document.getElementByID -- 差异

转载 作者:行者123 更新时间:2023-12-01 02:36:08 25 4
gpt4 key购买 nike

Possible Duplicate:
document.getElementById vs jQuery

更多的 jQuery 新手问题会带给你们......

我有一些代码或多或少地使用了 jQuery。我的困惑是,在一种情况下,我得到了一个标识符,它是页面上 div 的 ID。我预计 $(theIdentifier) 会得到该对象,但它没有; console.log 返回“未定义”。然而,document.getElementById(theIdentifier) 成功了——它返回了我正在寻找的东西,并且对 div 的进一步操作按预期工作。

这里有什么?它们不应该是相同的吗?为什么 jQuery 版本不起作用?

显然很困惑;感谢您的建议!

最佳答案

“$()”的参数必须是选择器:

var $thing = $("#" + thingId);

几乎与调用“getElementById()”相同。不同之处在于后者将关心“id”值(IE 中除外,见下文),而基于 jQuery 选择器的代码将关注嵌入的 CSS 元字符。因此,如果您有一个带有“.”的“id”值。在其中,像这样:

var foo = $('#thing.special');

然后它将查找 id 为“thing”且类为“special”的元素,而不是 id 为“thing.special”的元素。

IE 的问题:由于只有 Microsoft 的一些神秘开发人员知道的原因,IE 中的“getElementById()”代码将返回“name”属性与参数匹配的元素。该行为不依赖于具有相同“id”值的元素的存在;我认为它返回在 DOM 中找到的第一个。 (我不了解IE9这方面的情况。)

注意 — 注释正确地提到“$()”函数可以采用各种不同类型的参数,从而产生各种效果。当我说它“必须是一个选择器”时,我指的是它与字符串值参数的使用。

关于jQuery $() 与 document.getElementByID -- 差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5756928/

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