如何优化这段JS代码?

时间:2012-02-24 06:38:54

标签: javascript jquery

对不起JS新手在这里:

    if (message.notify_one_day_out){
        $("#data\\[User\\]\\[notify_one_day_out\\]").val("1");
    }
    else{
        $("#data\\[User\\]\\[notify_one_day_out\\]").val("0");
    }  

上面的代码感觉很草率。我怎么能压缩它?我知道这是发展基础,但我可以这样做:

$("#data\\[User\\]\\[notify_one_day_out\\]").val(message.notify_one_day_out);

4 个答案:

答案 0 :(得分:5)

//this is actually a function call "$()" better reference it to avoid overhead
var el = $("#data\\[User\\]\\[notify_one_day_out\\]");

el.val( message.notify_one_day_out ? '1' : '0');

我建议你将那些[]变成破折号或下划线。这样就不会那么乱了。

答案 1 :(得分:0)

$("#data\\[User\\]\\[notify_one_day_out\\]").val(
               message.notify_one_day_out ? "1" : "0");

答案 2 :(得分:0)

您可以使用三元运算符(也称为条件运算符):

$("#data\\[User\\]\\[notify_one_day_out\\]").val(
         message.notify_one_day_out ? '1' : '0' );

这是三元运算符的原型:

(expression) ? this if true : this if false;

基本上它是if-else陈述的简写。


您可以在此处详细了解:

答案 3 :(得分:0)

您可以使用ternary operator

$("#data\\[User\\]\\[notify_one_day_out\\]").val(message.notify_one_day_out ? "1" : "0");