我很好奇我是否可以在 if statement 中分配值,有点:
if (a=jQuery("#user > .mask.fix > .a1").css('display')!='none'){
b = a+'hello';
//b=jQuery("#user > .mask.fix > .a1").css('display')+'hello'; //the same thing but slower because of access through DOM again, right?
}
我已经在Chrome控制台中测试了这种结构,看起来很有效。我只是希望有人确认它在javascript中甚至在jQuery中都有效。
谢谢。
答案 0 :(得分:3)
我已经在Chrome控制台中测试了这种结构,看起来很有效。
不,你写的第一个块并不是你认为它做的。它会将比较结果分配给a
,不 display
值。因此,a
最终会以true
或false
结尾,而不会"none"
或类似。要分配和然后测试,您需要在()
部分周围(a = ...)
。
我只是希望有人确认它在javascript中甚至在jQuery中都有效。
jQuery是一个库,而不是一种语言。我们在这里谈论JavaScript。
你可以这样做(使用()
):
if ((a=jQuery("#user > .mask.fix > .a1").css('display'))!='none'){
b = a+'hello';
}
...但这更容易阅读和调试:
a=jQuery("#user > .mask.fix > .a1").css('display');
if (a!='none'){
b = a+'hello';
}
答案 1 :(得分:0)
你可以,但对于其他程序员和任何linting工具来说,这看起来都是错误的:
代码:
var selected = jQuery("#user > .mask.fix > .a1").css('display');
if (selected !== 'none') {
b = selected + 'hello';
}
只会运行一次jQuery,但要更清洁。