gpt4 book ai didi

jquery - jQuery 有 "find or fail loudly"方法吗?

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

考虑以下 jQuery 代码:

$('.child').closest('.parent').find('.sibling').hide();

在每一步中,如果没有找到任何内容,jQuery 将默默失败(例如,如果没有 .parent)。

有时这是有道理的,但通常这只是意味着代码没有执行任何操作,您必须找出原因。我希望可以选择执行以下操作:

$('.child').closest!('.parent')...

意思是“如果你找不到这个,就大声失败”。 (如果只能在开发时启用此功能,那就更好了。)

jQuery中有类似的东西吗?

最佳答案

没有,但你可以轻松做到:

Object.keys($.fn).forEach(function(k){
var f = $.fn[k];
if (typeof f !=='function') return;
$.fn['_'+k] = function(){
var o = f.apply(this, arguments);
if (o && 'length' in o && !o.length) throw "LOUD";
return o;
}
})

$("body")._find("unexisting"); // throws LOUD

或者,您可以在 Debug模式下替换现有函数:

if (DEBUG_MODE) {
// let's be more cautious with an explicit list this time
['find','closest]'].forEach(function(k){
var f = $.fn[k];
$.fn[k] = function(){
var o = f.apply(this, arguments);
if (o && 'length' in o && !o.length) {
throw "LOUD"; // you shall make it a more interesting error
}
return o;
};
});
}

随着 jQuery 原型(prototype)的公开,可能性是无限的。

现在...jQuery 不会在空集合上失败这一事实通常很有用。当然,您可以决定仅为调试/开发 session 集成此代码。

关于jquery - jQuery 有 "find or fail loudly"方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30650381/

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