jquery - 是否可以在条件语句中链接 hasClass() 或 is() ?

标签 jquery conditional-statements jquery-chaining

我注意到我的网站代码中有很多以下类型的条件语句:

//Example 1
if ($("#myDiv1").hasClass("myClass1")) {
    $("#myDiv1").hide();
}

//Example 2
if (!$("#myDiv2").is(":hover")) {
    $("#myDiv2").slideUp("slow");
}

整理这个的明显方法如下:

//Example 1
var e1 = $("#myDiv1");
if (e1.hasClass("myClass1")) {
    e1.hide();
}

//Example 2
var e2 = $("#myDiv2");
if (!e2.is(":hover")) {
    e2.slideUp("slow");
}

但是,我想知道我是否可以以某种方式链接这些函数,尽管有 if 语句。我尝试了这两行代码(没想到它会起作用,但它没有);

//Example 1
var e1 = $("#myDiv1");
if (e1.hasClass("myClass1").hide()); //Attempt1

e1.hasClass("myClass1").hide(); //Attempt2

if 语句和 if 语句的参数中的 DOM 元素相同时,有什么方法可以链接条件吗?

最佳答案

重写此代码以占用更少代码的一种方法如下。这种风格利用了 JavaScript 计算 bool 语句的方式,有时被称为“短路”。基本上,每行的第二部分(在 && 之后)只有在第一部分为 true 时才会执行。

$("#myDiv1").hasClass("myClass1") && $("#myDiv1").hide();
!$("#myDiv2").is(":hover") && $("#myDiv2").slideUp("slow");

关于jquery - 是否可以在条件语句中链接 hasClass() 或 is() ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25837835/

相关文章:

Javascript - 有人可以向我解释一下它的作用吗?

Java:使用if条件检查char变量的内容

jquery - 在 jquery 中定位悬停元素

javascript - 悬停后保留背景图像?

javascript - 数据表-当存在空值时获取总计

javascript - 让 div 内的所有链接都调用相同的函数?

用于条件表达式的 Ruby 正则表达式

javascript - 对 Jquery 链中当前对象的引用

javascript - 带有延迟 : . did() 的 jQuery 函数链接 - 立即调用函数