选择一次具有相同类和不同数字的所有元素

时间:2017-03-13 15:32:01

标签: jquery css css-selectors sapui5

我正在尝试选择所有元素,但偶数将被设置为一个类,奇数作为一个不同的类,在CSS中只有一行,但我似乎没有成功,例如我有

span#__button1-inner.sapMBtnDefault.sapMBtnHoverable.sapMBtnInner.sapMBtnText.sapMFocusable
span#__button3-inner.sapMBtnDefault.sapMBtnHoverable.sapMBtnInner.sapMBtnText.sapMFocusable


span#__button2-inner.sapMBtnDefault.sapMBtnHoverable.sapMBtnInner.sapMBtnText.sapMFocusable
span#__button4-inner.sapMBtnDefault.sapMBtnHoverable.sapMBtnInner.sapMBtnText.sapMFocusable

有没有办法全部选择它们,但奇数和偶数要分开,因为我需要奇数是红色甚至是蓝色,有点像这样

span#__button(n)-inner.sapMBtnDefault.sapMBtnHoverable.sapMBtnInner.sapMBtnText.sapMFocusable

span#__button(n+1)-inner.sapMBtnDefault.sapMBtnHoverable.sapMBtnInner.sapMBtnText.sapMFocusable

我有其他元素有一些这些类,但不仅仅是它们,所以我不想针对所有这些类。 其他元素就是这样

span#__button1-inner.sapMBtnDefault.sapMBtnHoverable.sapMBtnIconFirst.sapMBtnInner.sapMBtnText.sapMFocusable
span#__button2-inner.sapMBtnDefault.sapMBtnHoverable.sapMBtnIconFirst.sapMBtnInner.sapMBtnText.sapMFocusable
span#__button3-inner.sapMBtnDefault.sapMBtnHoverable.sapMBtnIconFirst.sapMBtnInner.sapMBtnText.sapMFocusable

2 个答案:

答案 0 :(得分:1)

您已经收到了很多关于您提出的问题的评论和答案,所以我只是在这里提出一些替代方案。

前提:您在渲染视图后尝试从视图中选择多个元素。假设这是为了更改CSS规则或可能的可见性或选定的控件。

替代方法:将一些自定义数据添加到您希望(稍后)选择的每个控件。这本身可以通过两种方式完成。一种是使用工厂功能来生成控件。二是手动将自定义数据添加到控件。当模型数据用作生成控件的基础时,工厂函数将起作用。当在视图上手动创建可管理数量的控件时,可以选择手动添加自定义数据。渲染视图后,您始终可以通过循环浏览内容并检查自定义数据来选择元素。

优点:该方法将根据您在代码中已有的条件添加自定义数据。这将使其更易于维护。您不必使用jQuery,您的搜索将使用JavaScript。您可以进一步调整代码以允许它管理多组自定义数据(以防将来需要) 缺点:您将遍历视图的内容,因此较大的视图将导致性能损失。如果您的视图中有非常复杂或庞大的控件集,我建议使用jQuery中的属性选择器,如其他注释和答案中所述。

希望对你有所帮助。

答案 1 :(得分:0)

我会用:

span.sapMBtnDefault.sapMBtnHoverable.sapMBtnInner.sapMBtnText.sapMFocusable [ID ^ = __按钮] [ID $ = - 内]

此选择器通过在开头通过属性选择器id ^ = __按钮搜索__button来模拟通配符。然后,使用id $ =。

搜索结尾

如果id匹配不重要,只需删除该部分:

span.sapMBtnDefault.sapMBtnHoverable.sapMBtnInner.sapMBtnText.sapMFocusable