三元运算符在声明中间

时间:2011-10-23 14:44:49

标签: javascript jquery json

我有一个字符串,其中部分字符串取决于变量json[i].has_dishwasher是否包含值。如果它包含值,则class="selected"将添加到html字符串中。为了缩短我的代码(我实际上有一长串代码如下所示),我打算使用三元if运算符。

问题:我使用三元if条件语句的方式无效Javascript。我怎样才能使这个有效?

Javascript代码

html = '<div class="amenities"' + (json[i].has_dishwasher ? +'class="selected"'+) \
+ '>Dishwasher' +  json[i].has_dishwasher + '</div>';

2 个答案:

答案 0 :(得分:2)

你需要添加三元组的“tri”部分,它应该返回只是字符串,不包括连接(+)运算符。

... + (json[i].has_dishwasher ? 'class="selected"' : '') + ...

但这不是你想要的;这会让你有两个独立的“类”属性。除了创建HTML字符串之外,我可能会创建“class”属性的值:

var classVal = "amenities" + (json[i].has_dishwasher ? " selected" : "");

或者只是在有条件的情况下进行并保持清洁。

var classVal = "amenities";
if (json[i].has_dishwasher) classVal += " selected";

html = '<div class="' + classVal + '>Dishwasher' 
     + json[i].has_dishwasher + '</div>';

答案 1 :(得分:1)

html = '<div class="amenities"' + (json[i].has_dishwasher ? ' class="selected"' : '') + '>Dishwasher' +  json [i].has_dishwasher + '</div>';