Javascript 使用三元运算符返回不起作用

Javascript 使用三元运算符返回不起作用,javascript,jquery,Javascript,Jquery,我最初的想法是: <div class=""></div> $(function () { $("div").on("click", function () { $(this).addClass(function () { if ($(this).hasClass("")) { return "scale"; } else { retu

我最初的想法是:

<div class=""></div>

$(function () {
    $("div").on("click", function () {
        $(this).addClass(function () {
            if ($(this).hasClass("")) {
                return "scale";
            } else {
                return "";
            }
        });
    });
});

$(函数(){
$(“div”)。在(“单击”)上,函数(){
$(this).addClass(函数(){
if($(this).hasClass(“”){
返回“刻度”;
}否则{
返回“”;
}
});
});
});
然后试图使它更简单,但我得到了一个错误:

未捕获的语法错误:意外的令牌返回


$(函数(){
$(“div”)。在(“单击”)上,函数(){
$(this).addClass(函数(){
$(this.hasClass(“”)返回“scale”:返回“”;
});
});
});
我尝试将整个语句包装在括号中并使用一个返回值,但仍然收到相同的错误

我在这里做错什么了吗?

你可以做:

$(function () {
    $("div").on("click", function () {
        $(this).addClass(function () {
            return $(this).hasClass("") ? "scale" : "";
        });
    });
});
你可以做:

$(function () {
    $("div").on("click", function () {
        $(this).addClass(function () {
            return $(this).hasClass("") ? "scale" : "";
        });
    });
});
应该是

$(function () {
    $("div").on("click", function () {
        $(this).addClass(function () {
            return $(this).hasClass("") ? "scale" : "";
        });
    });
});
应该是

$(function () {
    $("div").on("click", function () {
        $(this).addClass(function () {
            return $(this).hasClass("") ? "scale" : "";
        });
    });
});

@user2930185刚刚更正了另一个错误,它是
return$(this).hasClass(“”)?“比例”:“
返回$(this).hasClass(“”)?“比例”:返回“
@user2930185刚刚更正了另一个错误,它是
return$(this).hasClass(“”)?“比例”:“
返回$(this).hasClass(“”)?“比例”:返回“return
,您可以将任何表达式放在
return
关键字后面,包括条件运算符。@FelixKling:这很有道理,谢谢!条件运算符是表达式,返回语句是语句。一般来说,语句不能包含在表达式中,而是相反。因为return语句的结构是
return
,您可以将任何表达式放在
return
关键字后面,包括条件运算符。@FelixKling:这很有道理,谢谢!