javascript - 使用 if、else if、else 语句设置变量的最佳方法是什么

标签 javascript jquery

必须有更好的方法来在以下代码块中设置变量 $callLinkContainer:

var $callLinkContainer;
if ( $callLink.closest('class1-tel').length > 0 ) {
     $callLinkContainer = $('body').find('.class1-container');
} else if ( $callLink.closest('.class2').length > 0 ) {
     $callLinkContainer = $('body').find('.class2-container');
} else {
     $callLinkContainer = $callLink.closest('.class3');
}

以前,我使用三元运算符来设置变量,但我很确定第三个条件使这不可能。如果可能的话,我希望使这段代码更加简洁。

最佳答案

您可以使用多个带缩进的三元运算符

var $callLinkContainer = $callLink.closest('class1-tel').length > 0 
  ? $('body').find('.class1-container')
  : $callLink.closest('.class2').length > 0 
    ? $('body').find('.class2-container')
    : $callLink.closest('.class3');

运算符的优先级是这样您不需要像中那样添加括号

a ? b : (c ? d : e)

不过,为了更加清晰起见,您可能需要添加它们。

关于javascript - 使用 if、else if、else 语句设置变量的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23354001/

相关文章:

javascript - 如何在后台运行服务器上的 Typescript 文件?

javascript - 为什么提示有时返回 null 作为字符串

javascript - pdf.js 和 viewer.html 默认缩放初始值

javascript - 解析 jQuery.ajax 错误响应消息

javascript - 单击 fancybox2 外部

javascript - 设置嵌套 div 以填充所有父级

javascript - 镭悬停不起作用

jquery - 让窗口在同一浏览器中弹出

javascript - 用连字符分隔匹配值

jquery - ckeditor 使用 div 调整大小