【问题标题】:How to select element that has a certain class and has a class that ends with?如何选择具有特定类且以类结尾的元素?
【发布时间】:2019-10-01 18:34:42
【问题描述】:

我有以下代码

<span id="student" class="studentTrainingActive selected-for">Foo bar</span>

如何选择?

根据这个answer我尝试使用以下代码:

$('span[class$="TrainingActive"].selected-for').length

但结果总是0。

我的代码有什么问题?

【问题讨论】:

    标签: jquery html css


    【解决方案1】:

    您的选择器只是有一个小问题。

    class$="TrainingActive"
    

    实际上应该是:

    class*="TrainingActive"
    

    结果代码:

    console.log($('span[class*="TrainingActive"].selected-for').length);
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <span id="student" class="studentTrainingActive selected-for">Foo bar</span>

    控制台输出:

    1
    

    为什么使用 *= 而不是 $=

    正如@Andreas 所指出的,$= 作为选择器不起作用的原因是class 不以TrainingActive 结尾。看class属性:

    studentTrainingActive selected-for
    

    selected-for结尾。

    使用 contains (*=) 会根据需要愉快地匹配类,当然可以根据需要与 .selected-for 组合。

    【讨论】:

    • 您可能想解释为什么“以”结尾的选择器不是 TO 应该使用的(尽管要求 “...有一个以”结尾的类)以及为什么“包含”选择器是更好的选择
    • 成功了,但是我的选择器有什么问题?我使用$= 来选择它是否以结尾。你使用了 "*=" 代表如果它包含...
    • @Andreas 谢谢,我已经修改了答案以包含您的建议
    猜你喜欢
    • 2018-05-19
    • 2023-03-04
    • 1970-01-01
    • 2017-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多