使用纯 JavaScript 我可以做这样的事情:
var ninjaTurtle = document.getElementById('raphael') ||
document.getElementById('leonardo');
如果第一个 DOM 查找返回 null
(这是假值),则会评估第二个查找。
jQuery 函数 $()
始终返回 i jQuery 类似数组的对象,即使没有元素匹配也是如此。即使为空,该对象也不是假的,因此以下表达式永远不会计算右侧:
var ninjaTurtle = $('#raphael') || $('#leonardo');
那么,使用 jQuery 时进行这种回退的惯用方法是什么?
最佳答案
检查匹配/返回的元素计数将告诉您选择器是否匹配某些内容... fallback是一个简单的实用程序插件,可以让您优雅地做到这一点...
jQuery.fn.fallback = function(elem) {
return 0 < this.length ? this : $(elem);
};
此功能最好的部分是您可以根据需要链接任意数量的元素,直到找到匹配的元素。
$('#raphael').fallback('#leonardo').fallback('#kilik').dosomething();
关于jQuery 相当于 ||或者 ??运算符(operator),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7190126/