我想使用带空格的其他字段的值更新一个字段的值。如果value为null,则不应添加空格。我应该使用什么逻辑,因为我不能在值集中使用IF。
示例
document.getElementById("target").value= Constant+if(name){" "+this.value}+if(age){" "+this.value}+if(height){" "+this.value};
答案 0 :(得分:1)
您正在寻找的是一个三元运算符。布尔条件后面跟?
,true
值返回,:
返回假值。
console.log((name ? name : '') + (age ? age : ''));
对于你正在做的事情,我不会以这种方式连接一堆三元组。制作一个数组,然后加入。
var parts = [];
if (name) {
parts.push(name);
}
if (age) {
parts.push(age);
}
// etc. etc.
console.log(parts.join(' '));
如果您可以使用Array.filter(较新的浏览器),则可以简化数组,而不需要所有if
语句:http://www.devign.me/javascript-tip-remove-falsy-items-out-of-an-array
答案 1 :(得分:1)
将字符串格式代码放在可以使用if语句的函数中。
document.getElementById("target").value = formatValue();
function formatValue(){
var formattedString = Constant;
if(name){
formattedString += " " + name;
}
if(age){
formattedString += " " + age:
}
if(height){
formattedString += " " + height:
}
return formattedString;
}
如果您不想使用命名函数,请使用自调用匿名函数:
document.getElementById("target").value = (function(){
var formattedString = Constant;
if(name){
formattedString += " " + name;
}
if(age){
formattedString += " " + age:
}
if(height){
formattedString += " " + height:
}
return formattedString;
})();