我注意到我的网站代码中有很多以下类型的条件语句:
//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/