jQuery/Sizzle 中有 OR 组合器吗?

发布于 2024-12-06 20:50:12 字数 806 浏览 2 评论 0原文

可能的重复:
jQuery 或选择器?

我想为匹配集中的每个 select找到第一个具有类 placeholder 或空值的 option

$(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>

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

Possible Duplicate:
jQuery OR Selector?

I would like to for each select in the matched set find the first option that either has a class placeholder or an empty value something along the lines of

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

That is unfortunately not a valid sizzle (or CSS3) syntax - anyone know if there is a valid way to do this with selectors?

Obviously I could write procedural code to find this for me, but I'm hoping for something a bit more slick

Edit:
To clarify, I do not think a comma simply works. Imagine the following

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

In this case I want only the first selected, NOT both

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

执手闯天涯 2024-12-13 20:50:12

我过去也遇到过类似的问题,并解决了类似的问题。

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

I have also run into an issue like this in the past and settled for something like this.

$(selectorOrJquery).find('select').andSelf().filter('select')
  .find('option.placeholder, option[value=""]').eq(0);
秋叶绚丽 2024-12-13 20:50:12

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

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

This will return the first option of a select that is either empty or has a class placeholder.

$("select option:first").filter(":empty,.placeholder")
挖个坑埋了你 2024-12-13 20:50:12

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

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

Just use a comma, which is a valid CSS/jQuery Selector.

$(selectorOrJquery).find('select').andSelf().filter('select')
  .find('(option.placeholder,  option[value=""]):first)
城歌 2024-12-13 20:50:12

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

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

the css OR is the comma, so the selector you want would be

'option.placeholder:first, option[value=""]:first'
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文