javascript
  • jquery
  • json
  • 2011-10-23 107 views 2 likes 
    2

    我有一個字符串,其中部分字符串取決於變量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

    您需要添加三元的「三」的一部分,它應該返回只是字符串,不包括級聯(+)運營商。

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

    但這並不是你想要的;這會讓你有兩個獨立的「班級」屬性。我可能除了創建HTML字符串創建「類」屬性的值:

    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
    html = '<div class="amenities"' + (json[i].has_dishwasher ? ' class="selected"' : '') + '>Dishwasher' + json [i].has_dishwasher + '</div>'; 
    
    相關問題