gpt4 book ai didi

javascript - 你需要检查 jQuery 对象是否存在吗?

转载 作者:行者123 更新时间:2023-11-28 19:51:40 25 4
gpt4 key购买 nike

假设您有一个 100 个页面的网站,并且有一个 id 为 #unique-div 的 div 仅出现在 page-5.html 中,但不会出现在其他 99 个页面中,示例更加简单你有一个在所有页面上加载的 JS 文件,里面有这样的内容:

var uniqueDiv = $('#unique-div');

uniqueDiv.addClass('random-class');

这是否会以任何可能的方式产生任何负面影响(例如性能)?最好先检查一下长度吗?

var uniqueDiv = $('#unique-div');
if ( uniqueDiv.length ) {
uniqueDiv.addClass('random-class');
}

如果是这样,为什么?

或者如果你像这样链接对象呢:

var uniqueDiv = $('#unique-div');

someVar.add(moreVars).add(uniqueDiv).addClass('random-class');

如果该对象不存在,会发生什么?

我尝试查找此内容,但我一直想知道这一点。

最佳答案

任何 jQuery 方法都有责任具有“正确”的行为,无论调用它们的当前 jQuery 对象中有 0 个、1 个或多于 1 个 DOM 对象。因此,只要您不使用一些损坏的 jQuery 插件方法,您就不必在调用方法之前测试长度,这包括您使用链接的情况。

因此,就您而言,即使您不知道 #unique-div 是否实际存在,这也完全没问题:

$('#unique-div').addClass('random-class');

如果 div 不存在,则 .addClass() 方法将不执行任何操作。

注意:一些检索值的方法(例如 .val())被编码为仅对 jQuery 对象中的第一个 DOM 元素进行操作,您必须使用单独的方法进行检查,例如如果 jQuery 对象中没有 DOM 对象,它们将返回什么内容。例如,当 jQuery 对象中没有 DOM 对象时,.val() 将返回 undefined

关于javascript - 你需要检查 jQuery 对象是否存在吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23346867/

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