JavaScript中多个if shorthands的语法是什么?
$('#field-'+i+' .name').css({
top: '30%',
width: '100%',
'letter-spacing': i==1 ? '-2.5px' : '-1px',
});
我希望字母间距有多个缩写,例如:
'letter-spacing': i==1 ? '-2.5px' i==3 ? '-1.5px' : '-1px'
答案 0 :(得分:2)
实际上,如果你想把它放在一行代码中,那么内联多个ternery操作符并没有错或错,但你可以在那里使用更具可读性的风格。
但是,我的建议是使用lookup-object或 Array ,特别是如果你有很多不同的状态。
var values = ['1px', '-2.5px', '5px', '-1.5px'];
$('#field-'+i+' .name').css({
top: '30%',
width: '100%',
'letter-spacing': values[ i ],
});
答案 1 :(得分:1)
您只是错过:
来完成第一个条件:
我添加了一些parens来帮助一点:
'letter-spacing': (i == 1) ? '2.5px' : ((i == 3) ? '-1.5px' : '-1px')
答案 2 :(得分:1)
i === 1 ? '-2.5px' : i === 3 ? '-1.5px' : '-1px'
答案 3 :(得分:1)
看起来你在谈论嵌套的三元表达式 - 我倾向于像下面那样缩进:
'letter-spacing': i==1
? '-2.5px'
: i==3
? '-1.5px'
: '-1px'
答案 4 :(得分:1)
如果您有很多选择,请考虑哈希:
var hash = {
1: '-2.5px',
3: '-1.5px'
};
然后:
'letter-spacing': hash[i] || '-1px'
如果i
是整数,则可以使用数组而不是哈希对象。但是,该对象更灵活。
答案 5 :(得分:1)
@ChrisFrancis:表格三元变体:
`'letter-spacing': i == 1 ? '-2.5px'
: i == 3 ? '-1.5px'
: '-1px'
在这种情况下可能有点令人困惑,第一个“:”意味着别的东西,但是季节尝试