JavaScript の複数の場合の省略形の構文は何ですか?
$('#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'
JavaScript の複数の場合の省略形の構文は何ですか?
$('#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'
実際、1行のコードで複数のターナリー演算子をインライン化することは悪いことでも悪いことでもありませんが、そこではより読みやすいスタイルを使用できます。
ただし、ここでの私の提案は、特に多くの異なる状態がある場合は、ルックアップオブジェクトまたは配列を使用することです。
var values = ['1px', '-2.5px', '5px', '-1.5px'];
$('#field-'+i+' .name').css({
top: '30%',
width: '100%',
'letter-spacing': values[ i ],
});
@ChrisFrancis:表形式の3値バリエーション:
`'letter-spacing': i == 1 ? '-2.5px'
: i == 3 ? '-1.5px'
: '-1px'
この場合、最初の「:」は別の意味で少し混乱するかもしれませんが、味わう季節です
ネストされた三項式について話しているようです-私は次のようにインデントする傾向があります:
'letter-spacing': i==1
? '-2.5px'
: i==3
? '-1.5px'
: '-1px'
選択肢がたくさんある場合は、ハッシュを検討してください。
var hash = {
1: '-2.5px',
3: '-1.5px'
};
その後:
'letter-spacing': hash[i] || '-1px'
i
が整数の場合、ハッシュオブジェクトの代わりに配列を使用できます。ただし、オブジェクトはより柔軟です。
:
最初の条件文を完成させるためにa が欠けています:
少し役立つように、いくつかの括弧を追加しました。
'letter-spacing': (i == 1) ? '2.5px' : ((i == 3) ? '-1.5px' : '-1px')
i === 1 ? '-2.5px' : i === 3 ? '-1.5px' : '-1px'