有没有办法断言一个元素没有 class?

Is there a way to assert that an element does not have a class?

我想创建一个选择器来检查特定元素是否根本没有 class。

我有这个选择器 (Groovy) ->

selector = $('span', text: 'Walrus').parent().children("h5", class: notContains("disabled"))

这行不通,因为它期望元素具有 class,而 class 不是 'disabled'。

不是在寻找解决方法的答案,只是想知道是否有任何方法可以用任何语言做到这一点。

css3 选择器不起作用吗?

$('span', text: 'Walrus').parent()
                         .children("h5:not([class])")

您可以尝试选择 h5 而不管其 class,然后排除所有 h5.disabled。

selector = $('span', text: 'Walrus').parent().children("h5").not("h5.disabled")

这将检查没有 .disabled 的 h5 的特定场景,无论元素看起来像 <h5 class=""><h5> 还是 <h5 class="other classes">

但是,如果您想检查元素 没有 具有 class 属性,那就是另一回事了。

您也可以按照以下方式进行操作:

selector = $('span', text: 'Walrus').parent().children("h5[class=''], h5:not([class])");