jQuery相当于|| 要么 ?? 操作者

使用纯JavaScript我可以做这样的事情:

var ninjaTurtle = document.getElementById('raphael') || document.getElementById('leonardo'); 

如果第一个DOM查找返回null (即falsy),则计算第二个查找。

jQuery函数$()总是返回类似jQuery数组的对象,即使没有匹配的元素也是如此。 即使是空的,这个对象也不是假的,因此下面的表达式永远不会评估右侧:

 var ninjaTurtle = $('#raphael') || $('#leonardo'); 

那么,使用jQuery时这种回退的惯用方法是什么?

检查匹配/返回的元素计数将告诉您选择器是否匹配某些内容… fallback是一个简单的实用程序插件,可以让您优雅地执行此操作…

 jQuery.fn.fallback = function(elem) { return 0 < this.length ? this : $(elem); }; 

此function的最佳部分是您可以根据需要进行链接,直到找到匹配的元素为止。

$('#raphael').fallback('#leonardo').fallback('#kilik').dosomething();

 var ninjaTurtle = $('#raphael').length ? $('#raphael') : $('#leonardo'); 

我没有看到这样做的方式。 我想到的最短的事情是:

 var ninjaTurtle = $('#raphael').length ? $('#raphael') : $('#leonardo');