2

假设我们有以下标记:

<div class=“t恤黑蓝”>示例</div>示例示例示例示例示例示例示例

还有什么可供选择的吗t恤毛衣有一个选择器的黑色和蓝色?我的意思是,不使用逗号分隔的选择器。

例如,我不想做以下事情:

var wanted=$('.thirt.black.blue,.weart.black.blue');

有没有类似的事情?(我知道它不起作用):

var wanted=$('(.t-shirt,.woothere).black.blue');

提前谢谢。

  • 不,您需要一个逗号来执行or。
    – 凯文·B
    评论 2013年4月11日21:08
  • 你确定吗?你有什么更好的选择吗? 评论 2013年4月11日21:10
  • 为什么没有coma-separated选择器?
    – 浮士德
    评论 2013年4月11日21时11分

4个答案4

重置为默认值
6

不,jQuery和CSS中都没有。

即使有一个用于对选择器的部分进行分组的函数伪类(例如即将到来的:matches()在Selectors 4)中,您仍然需要提供这些类的逗号分隔列表:

:火柴(.t恤,.毛衣).黑色.蓝色

不用说,上面的选择器在任何浏览器中都不起作用。能够 作为Sizzle扩展自行实现如果你真的想,但我真的不会打扰你。

  • 有几天,在堆栈溢出上,当我看到你的答案时,我认为我应该给你答案全部的我的上半场。。。自动+1(不用说!):) 评论 2013年4月11日21:13
  • 1
    @大卫·托马斯:我是什么,[css]的乔恩·斯基特?;) 评论 2013年4月11日21:14
  • 1
    基本上:是的,实际上。;) 评论 2013年4月11日21:15
2

你可以这样做:

var wanted=$('.black.blue').filter('.t恤,.woother');

但是

var wanted=$('.thirt.black.blue,.woother.black.lue');

无论如何可能更有效(不过我还没有测试过)

1
  • 我会用.过滤器()。谢谢+1 评论 2013年4月11日21:38
0

如果唯一的目标不是使用逗号,您可以这样做:

var blacklue=$(“.black.blue”),tshirts=blacklue.filter(“.t-shirt”),毛衣=blackblue.filter(“.woother”),both=tshirt.add(毛衣);

然而,我看不出它有多好,除非它能让你组织得更好。

0
var selectionLevel1=$(“.t-shirt,.woothere”).andSelf();var finalSelection=$(“.black”,selectionLevel1);

你的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览标记的其他问题问你自己的问题.