javascript - 如何以三元方式使用 insertAfter 和 insertBefore 代码转换 if block ?

标签 javascript jquery ternary-operator

如何将以下代码转换为三元方式?

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

最佳答案

这会起作用:

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

或者甚至是一句台词:

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

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

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

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

如果一年后您必须维护代码,这将使所有相关人员免于头痛。

关于javascript - 如何以三元方式使用 insertAfter 和 insertBefore 代码转换 if block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23083066/

相关文章:

javascript - 为div jquery的文本分配索引

javascript - 如何让ajax显示表格列表而不点击文本字段

jquery - 在新创建的元素上应用 jQuery 文件样式插件设置

javascript - jquery imgAreaSelect 在 Bootstrap 模式窗口中不起作用

javascript - 添加文本框和下拉值(数学)

javascript - 有关 JQuery 的 .html() 方法的详细信息

javascript - 无法隐藏和显示

JSF EL嵌套三元运算符

javascript - AngularJS 模板中的三元运算符

Swift 三元语法错误