我正在测试使用茉莉业力目前。
有一个测试场景:
单击并突出显示一个元素
单击并突出显示后,它将有一个新的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?

最佳答案

jQueryhasClass()确定是否为任何匹配的元素分配了给定的类。
如果将类分配给
元素,即使其他类也是。例如,给定HTML
以上,将返回以下值:
检查事项:
确保没有其他javascript错误
确保您的代码正在应用addClass()函数。
使用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');
    }
})

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<p>Toggle click for class availability:</p>
<a  href="#" data-lrn-index="0" role="checkbox" aria-label="Response area" aria-checked="false">Click here to check class</a>

09-12 14:54