gpt4 book ai didi

javascript - 我的 JQuery 存在函数 : does it make sense or not?

转载 作者:行者123 更新时间:2023-11-28 02:47:32 25 4
gpt4 key购买 nike

这几天我有点困惑。我只要愿意就使用 JQUERY 选择器...但我没有检查选择器是否存在,而是使用了 .each 函数。

  var exist = function(obj){
var returnObject ={};
for(var key in obj){
if(obj[key].length){
returnObject[key] = obj[key];
}else {
return false;
}
}
return returnObject;
}
//define all your selectors that would be needed for core functionality.
var activeSelectors = exist({
selList : $('div.selectorone'),
selTag : $('a#tagtwo'),
selFloat : $(div.float) /*etc etc*/

})

if (activeSelectors) {
console.log('all my core selectors are here!');
/* do Stuff*/
}

我知道这看起来有点多,特别是如果您只需要一个选择器,但我无法找出更好的方法(除了每个选择器上的蹩脚 if 语句)。我看到人们使用

$('div#mySelector').each(function(){/* 做一些事情*/});

但我不同意这很好。请注意,#mySelector(因为它是一个 id)仅允许使用一次。

我希望得到反馈。请考虑性能与良好的编程。

欲了解更多信息,请在下面评论或联系我!

最佳答案

如果我真的想避免只使用简单的 if 语句,那么我可能会使用像这样的简单函数:

var exists = function()
{
for (var i in arguments)
{
if ($(arguments[i]).length == 0)
{
return false;
}
}

return true;
}

并像这样调用它:

var list = $('div.selectorone');
var tag = $('a#tagtwo');
var float = $('div.float');
if (exists(list, tag, float))
{
// Do some stuff.
}

或者:

if (exists('div.selectorone', 'a#tagtwo', 'div.float'))
{
// Do some stuff.
}

我确实认为你过度设计了这个问题。您真正需要做的就是检查您所做的每个选择的 length 属性(即 listtag > float 变量)。

此外,性能在这里完全不是问题;检查元素是否存在的方法实际上会影响您网站的用户体验吗?正如唐纳德·高德纳 (Donald Knuth) 所说:

We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil.

关于javascript - 我的 JQuery 存在函数 : does it make sense or not?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4539388/

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