2011-10-23 10 views
2

文字列の一部は、変数json[i].has_dishwasherに値が含まれているかどうかによって決まります。値が含まれている場合は、class="selected"がhtml文字列に追加されます。私のコードを短くするには(私は実際に以下に示すコードの長いシリーズを持っています)、私は三元ifオペレータを使うつもりです。ステートメントの真ん中の3進演算子

問題:私がターナリifの条件文を使用した方法は、有効なJavaScriptではありません。これを有効にするにはどうすればよいですか?

Javascriptのコードは

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

答えて

2

あなたは三元の「トライ」の部分を追加する必要があり、それが連結(+)の演算子が含まれていない、だけ文字列を返す必要があります。

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

しかし、それはあなたが望むものではありません。 2つの別々の「クラス」属性が残されます。

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

それとも条件付きでそれを行うときれいに保つ:私はおそらく離れてHTML文字列の作成から「クラス」属性の値を作成すると思います。

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

html = '<div class="' + classVal + '>Dishwasher' 
    + json[i].has_dishwasher + '</div>'; 
1
html = '<div class="amenities"' + (json[i].has_dishwasher ? ' class="selected"' : '') + '>Dishwasher' + json [i].has_dishwasher + '</div>'; 
関連する問題