Javascript 如果条件为false,则防止默认
我有一个链接。当有人点击它时,我想在让它工作之前检查一些条件。如果为Javascript 如果条件为false,则防止默认,javascript,jquery,conditional,preventdefault,Javascript,Jquery,Conditional,Preventdefault,我有一个链接。当有人点击它时,我想在让它工作之前检查一些条件。如果为false则应防止默认操作 $(".pager-next a.active").click(function(event) { if (!a == 1) { event.preventDefault(); } }); 只有当a等于1时,该链接才有效。上述代码是否正确a设置为1。链接应仅在满足条件的情况下工作。假设“a等于1时应仅工作”您的意思是a元素的文本等于1,请尝试以下
false
则应防止默认操作
$(".pager-next a.active").click(function(event) {
if (!a == 1) {
event.preventDefault();
}
});
只有当a
等于1
时,该链接才有效。上述代码是否正确<如果满足特定条件,则代码>a设置为1
。链接应仅在满足条件的情况下工作。假设“a等于1时应仅工作”您的意思是a
元素的文本等于1,请尝试以下操作:
$(".pager-next a.active").click(function(event) {
if ($(this).text() != "1") {
event.preventDefault();
}
});
您可以修改text()
,以使用jQuery中可用的元素属性
更新
my a是一个var,在满足条件之前保持值0 在这种情况下,问题只是等式运算符不正确:
$(".pager-next a.active").click(function(event) {
if (a != 1) {
event.preventDefault();
}
});
注意:
!
的计算结果为真或假。如果a
到bool的转换为true
,则!a
的计算结果为false
所有正整数的计算结果均为true
。所以!a
将计算为false。使用double equals=
与1进行比较将测试该布尔值!带有布尔值1
或true
的a
。因此,如果a
是一个正整数,我怀疑它是一个正整数,那么您的if
语句的计算结果将始终为false
如果要测试某个东西不是其他东西,则需要将比较运算符(===
)中的第一个相等值更改为代码>
例如,var a=2;如果(a!==1){//do something}
上面的代码正确吗?你有问题吗?如果是,是哪一个?小心点,=
和==
之间有区别。如果要检查a
是否等于整数1
,则应使用a===1
。根据你的解释,我认为你的意思是a!=1
而不是!a==1
。lol捕捉到了它。Mathias Bynens是对的,我很确定这是你的问题,但也可能是错误的类型比较。这可能也很有帮助:我的a是一个var,在满足条件之前保持值0。为了不让你自己感到困惑,可能值得你使用true
和false
而不是0
和1
。非常感谢综合解释。学到的比我要求的多得多。
var a = 2;
if(!a==1){
// a was 2 (or boolean true by default)
// but using ! has negated its boolean value
// so !a evaluates to boolean false
// which is being compared to 1 (evaluating to boolean true)
// so this if statement will never get here
}
!"hello world" == 0 // true
!"hello world" === 0 // false
var a = 0; // integer 0 or bool false
if(!a==1){ // if the bool opposite of 0 (false) is equal to 1 (true)
// well, opposite of false is true, so you're checking if true is equal to true
// so this will get called
e.preventDefault();
}