在python中,我可以执行以下操作,如果第一个列表为空,则有条件地使用第二个列表:
>>> x = [ ] or [1, 2]
>>> x
[1, 2]
然而,在javascript中,
>>> x = [ ] || [1, 2];
[ ]
所以,如果“或技巧”不在桌面上,我想知道最简洁的方法是做一些类似下面的if-javascript-were-python-this-would-work伪代码:
$elems = $('first-selector') || $('second-selector')
答案 0 :(得分:9)
var elems = $("first-selector");
if(!elems.length) {
elems = $("second-selector");
}
不够简洁?
写一个小jquery扩展怎么样?
$.fn.or = function(selector) {
if (this.length) {
return this;
}
return $(selector);
}
var elems = $("first-selector").or("second-selector")
答案 1 :(得分:2)
您可以根据长度进行测试:
// Cache your results
var first = $(".first");
var second = $(".second");
// Assign your results
$elems = !first.length ? second : first;
答案 2 :(得分:1)
function coalesceArray(){
for (var i=0; i<arguments.length; i++) {
if (arguments[i] && arguments[i].length) return arguments[i];
}
return [];
}
然后使用coalesceArray($('first-selector'), $('second-selector'))