如何缩短jquery语法if-else语句?

时间:2012-04-13 09:43:21

标签: javascript jquery jquery-mobile

我使用了很多这些:

$text = $menu.jqmData('menu-text') ? 
           $menu.jqmData('menu-text') : self.options.menuTxt;

它已经是“速记”语法,但我想知道,是否有可能进一步减少上述行。必须有一个更好的方法,而不是检查 $ menu.jqmData('menu-text')然后再写一遍。不存在吗?

感谢您的帮助!

1 个答案:

答案 0 :(得分:21)

较短的方法是使用双管。如果第一个值为falsy,它基本上使用第二个值。

$text = $menu.jqmData('menu-text') || self.options.menuTxt;

您也可以在同一行中多次使用它。假设你有一个变量uberMenuTxt,它优先于其他两个,你可以这样做。

$text = uberMenuTxt || $menu.jqmData('menu-text') || self.options.menuTxt;

每次当前值为falsy时,它基本上都会继续运行,并且会在第一次没有的情况下停止。