在jQuery / Sizzle中是否有OR组合器?

时间:2011-09-28 15:41:05

标签: jquery jquery-selectors sizzle

  

可能重复:
  jQuery OR Selector?

我想为匹配集中的每个select找到第一个option,其中包含类placeholder或空值

$(selectorOrJquery).find('select').andSelf().filter('select')
  .find('(option.placeholder OR option[value=""]):first)

遗憾的是,这不是一个有效的sizzle(或CSS3)语法 - 任何人都知道是否有一种有效的方法可以用选择器执行此操作?

显然我可以编写程序代码来为我找到这个,但我希望有更多的东西

修改 为了澄清,我不认为逗号只是起作用。想象一下以下

<select>
  <option class="placeholder" value="0">Select Something</option>
  <option value="">Legitimate option that gets handled in JS</value>
</select>

在这种情况下,我只想要第一个被选中,而不是两个

4 个答案:

答案 0 :(得分:4)

过去我也遇到过像这样的问题,并且已经解决了这个问题。

$(selectorOrJquery).find('select').andSelf().filter('select')
  .find('option.placeholder, option[value=""]').eq(0);

答案 1 :(得分:1)

这将返回select的第一个选项,该选项为空或具有类占位符。

$("select option:first").filter(":empty,.placeholder")

答案 2 :(得分:1)

只需使用逗号,这是一个有效的CSS / jQuery选择器。

$(selectorOrJquery).find('select').andSelf().filter('select')
  .find('(option.placeholder,  option[value=""]):first)

答案 3 :(得分:1)

css OR是逗号,所以你想要的选择器是

'option.placeholder:first, option[value=""]:first'