我有看起来像这样的jQuery代码:

var $selected = $('#mySelector');

if (!$selected.length) {
  $selected = $('#anotherSelector');

  if (!$selected.length) {
    // etc.
  }
}


真是丑。我想做这样的事情:

var $selected = $('#mySelector') || $('#anotherSelector') || etc.


但是由于即使选择器不匹配,jQuery也会返回jQuery对象,因此此语法不起作用。 jQuery对象(或选择器)是否等效?谢谢!

最佳答案

不知道这是否是最好的方法,但是您可以编写一个小函数来帮助实现此目的。 Live Example

的HTML

<div class="asdf">ad</div>
<div class="asdf">ad</div>
<div class="asdf">ad</div>
<div class="asdf">ad</div>
<div class="asdf">ad</div>


JS

function test(selector){
    var list = $(selector);
    if (list.length > 0) return list;
    else return null;
}

console.log($('.asdfasdf') || $('.asdf'));
console.log(test('.asdfasdf') || test('.asdf'));

关于jquery - 这个||那|| jQuery中的任何样式语法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4926894/

10-12 12:31