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

Jør*_*ode 4 jquery

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

var ninjaTurtle = document.getElementById('raphael') ||
                  document.getElementById('leonardo');
Run Code Online (Sandbox Code Playgroud)

如果第一个DOM查找返回null,这是假的,则评估第二个查找.

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

var ninjaTurtle = $('#raphael') || $('#leonardo');
Run Code Online (Sandbox Code Playgroud)

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

Tej*_*eni 7

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

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

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

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