在jquery中使用带有if子句的.hasClass()

时间:2015-09-01 19:36:36

标签: javascript jquery if-statement

使用带有.hasClass()的if子句是否有效?

示例:

System.IO

或者

if ($(this).hasClass("class")){
    this will happen
}

2 个答案:

答案 0 :(得分:1)

查看sourcehasClass本身,我们可以看到只能返回布尔

function (selector) {
    var className = " " + selector + " ",
        i = 0,
        l = this.length;
    for (; i < l; i++) {
        if (this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf(className) >= 0) {
            return true;
        }
    }

    return false;
}

因此,不进行比较检查是有效的

if ($(this).hasClass("class")){

答案 1 :(得分:0)

对任何表达式使用if语句是有效的。 if语句是一个控制流语句,它可以跳过立即块(或单个语句)或执行它,具体取决于语句中表达式的值。使用标准强制规则将任何值强制转换为布尔值。

如果两个操作数相等(使用this algorithm),则==比较运算符求值为true的布尔值,否则为false。将任何值与true进行比较是多余的,因为如果它是true,或者可以转换为true,则表达式也将是true,并且将是{{} 1}}用于任何其他值

false的情况下,返回值已经是布尔值,因此不需要强制。

所以,是的它是有效的,语句之间没有区别,你可以(并且应该)使用第一个。