如何用insertAfter和insertBefore代码以三元方式转换if块?

Pad*_*ter 0 javascript jquery ternary-operator

如何以三元方式转换下面的代码?

if(epaper.othermakemodel.is(':checked')){
$("#dcolor").insertAfter("#lmodel");
}else{
$("#dcolor").insertBefore("#otherlabeldiv");
}
Run Code Online (Sandbox Code Playgroud)

Cer*_*rus 5

这可行:

var c = epaper.othermakemodel.is(':checked');
$("#dcolor")["insert" + (c ? "After" : "Before")](c ? "#lmodel" : "#otherlabeldiv");
Run Code Online (Sandbox Code Playgroud)

甚至是单行:

$("#dcolor")["insert" + (epaper.othermakemodel.is(':checked') ? "After" : "Before")](epaper.othermakemodel.is(':checked') ? "#lmodel" : "#otherlabeldiv");
Run Code Online (Sandbox Code Playgroud)

但是,为了使用运算符,这只是使用三元运算符.

保持代码简短,但更重要的是,保持代码可读:

var element = $("#dcolor");
if(epaper.othermakemodel.is(':checked')){
    element.insertAfter("#lmodel");
}else{
    element.insertBefore("#otherlabeldiv");
}
Run Code Online (Sandbox Code Playgroud)

如果您必须在一年后维护代码,这将使每个人都头疼.