如何用insertAfter和insertBefore代码以三进制方式转换if块
how can I convert the if block with insertAfter and insertBefore code in ternary way?
如何以三进制方式转换以下代码?
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");
}
如果你必须在一年后维护你的代码,这将使所有相关人员都不那么头疼。
当每行只有一个表达式时,可以进行此转换
condition ? // if (condition)
expr_true // expr_true;
: // else
expr_false; // expr_false;
所以你的会变成
epaper.othermakemodel.is(':checked') ?
$("#dcolor").insertAfter("#lmodel")
:
$("#dcolor").insertBefore("#otherlabeldiv");
不过,这对你的情况并没有真正的帮助。
请记住,在JavaScript中,大多数空白都没有意义,所以您甚至可以用if..else
在一行中写下这一点。
相关文章:
- 如何以用户友好的方式在计算机上保存从画布转换的图像
- CSS Div 类之间的转换仅以一种方式发生
- 有没有一种方法可以制作一个prezi,然后以某种方式将其转换为html和css类型的代码
- 如何将jQuery removeClass转换为ReactJS方式
- 将方程转换为 java 脚本可以解释它的方式
- 使用 JS 将日期字符串转换为可读方式
- 以编程方式将同步代码转换为异步代码
- 如何以简单的方式将函数转换为 RequireJS 中的模块
- 以数学方式转换 SVG 路径中的值以填充视图框
- 将 HTML 表转换为下拉列表(或以其他方式获取带有列的选择标记)
- 如何以简单的方式将像素转换为em
- 将 svg 转换为 base64.以编程方式创建的
- 从JS以编程方式使用CSS转换的干净方法
- 在*最后一个*CSS3转换之后,事件处理的稳健方式
- 如何以编程方式转换SVG
- 如何以交互方式降低(或停止)jquery转盘转换速度
- 更干净的方式转换dd-mm-yyyy到mm-dd-yyyy格式的Javascript
- 函数式Javascript-以FP方式转换为点格式(使用Ramda)
- 如何用insertAfter和insertBefore代码以三进制方式转换if块
- 为什么以这种方式转换代码