hasClass()对给定元素不起作用

时间:2018-10-02 02:51:16

标签: javascript jquery html

我目前正在使用茉莉花因果进行测试。

有一种测试方案:

  1. 单击一个元素并将其突出显示
  2. 单击并突出显示它后,它将具有一个新的class属性,其html将从<a xlink:href="#" data-lrn-index="0" role="checkbox" aria-label="Response area" aria-checked="false">更改为<a xlink:href="#" data-lrn-index="0" role="checkbox" aria-label="Response area" aria-checked="true" class="lrn-selected">

我设法使用此jQuery $("a[data-lrn-index='0']")找到了此元素,但是此jQuery将返回false$("a[data-lrn-index='0']").hasClass("lrn-selected")

从该元素HTML可以清楚地看到它具有class = ("lrn-selected"),为什么jQuery无法返回true?

1 个答案:

答案 0 :(得分:1)

jQuery hasClass()确定是否为任何匹配的元素分配了给定的类。

  

如果将类分配给一个.hasClass()方法,则该方法将返回true。   元素,即使其他类也是如此。例如,给定HTML   上面的代码,则将返回true:

要检查的事情:

  1. 确保没有其他javascript错误

  2. 确保您的代码可以应用addClass()函数。

  3. 使用<a href="{% url 'teacher-profile' teacher.pk %}">并检查开发人员工具栏以调试正在应用此类的函数

请检查以下示例:

debugger
$("a[data-lrn-index='0']").click(function () {
    if ($(this).hasClass('lrn-selected')) {
        $(this).html('Yes, I had that class');
        $(this).removeClass('lrn-selected');
    }
    else {
        $(this).html('Class removed');
        $(this).addClass('lrn-selected');
    }
})