Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这个| | | | | | | |那个| | jQuery中的任何样式语法_Jquery - Fatal编程技术网

这个| | | | | | | |那个| | jQuery中的任何样式语法

这个| | | | | | | |那个| | jQuery中的任何样式语法,jquery,Jquery,我得到的jQuery代码如下所示: var $selected = $('#mySelector'); if (!$selected.length) { $selected = $('#anotherSelector'); if (!$selected.length) { // etc. } } var $selected = $('#mySelector') || $('#anotherSelector') || etc. var $selected = $('#m

我得到的jQuery代码如下所示:

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

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

  if (!$selected.length) {
    // etc.
  }
}
var $selected = $('#mySelector') || $('#anotherSelector') || etc.
var $selected = $('#mySelector, #altSelector').slice(0,1);
很难看。我想这样做:

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

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

  if (!$selected.length) {
    // etc.
  }
}
var $selected = $('#mySelector') || $('#anotherSelector') || etc.
var $selected = $('#mySelector, #altSelector').slice(0,1);
但由于jQuery即使在选择器不匹配的情况下也会返回jQuery对象,因此这种语法不起作用。jQuery对象(或者选择器)是否有等价物?谢谢

您可以(ab)使用逗号运算符:

var $selected;
($selected = $('#mySelector'), $selected.length) ||
  ($selected = $('#anotherSelector'), $selected.length);

作为我问题的延伸,如果您知道您只需要第一个匹配元素(假设两者都存在的可能性),您可以这样做:

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

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

  if (!$selected.length) {
    // etc.
  }
}
var $selected = $('#mySelector') || $('#anotherSelector') || etc.
var $selected = $('#mySelector, #altSelector').slice(0,1);

这将把返回结果限制为只有一个元素,第一个选择器(如果存在),第二个选择器(如果第一个选择器缺失,第二个选择器不存在),或者一个空对象(如果两个都从页面中缺失)。

不确定这是否是最好的方法,但您可以编写一个小函数来帮助实现这一点

HTML


您是否可以简单地组合选择器
$(“#mySelector,#alternateSelector”)
如果两者都存在,将返回两者,但如果只有一个存在,也将单独返回其中一个。你可以,但这种严重的虐待将在地狱中受到惩罚。@delnan:老实说,我发现逗号运算符在这种情况下没有比这更好的用法了。虽然我不能对你的答案投赞成票,因为我不是Jquery的SME,但我可以指出,love
(ab)将
用作动词。@delnan:那是。这可能是因为逗号运算符除了对循环使用普通的计数
之外,几乎没有什么用处“需要”一次初始化或递增多个变量。