2016-02-03 3 views
-4

Мой случай, как это:Как использовать тернарный оператор в JavaScript?

... 
success:function(data) { 
    jQuery.each(data.SearchCityResponse.Nation.City, function(key,value) { 
     console.log(value.CityCode); 
     city.append(jQuery("<option value.CityCod==\'CEB\')?\'selected\':\'\'></option>").val(value.CityCode).text(value.CityName)); 
    }); 
    city.select2(); 
} 
... 

проверить в консоли: http://imgur.com/jIO8nYk

Это похоже на проблему написания тройном

+1

Вы не можете поместить операторов Javascript любого типа в середине определения строки. Когда вы это делаете, они просто часть строки. Используйте логику для определения фрагментов строки, а затем используйте конкатенацию строк для построения окончательной строки. – jfriend00

+0

Где находится тернар? – epascarello

+0

'city.append (jQuery (" ") .val (value.CityCode) .text (value.CityName)); ' –

ответ

2

"<option value.CityCod==\'CEB\')?\'selected\':\'\'></option>" это просто строка, и она не будет разобрать любую переменную или оператора JavaScript.

Также есть опечатка, CityCod должно быть CityCode.

Вы можете использовать конкатенацию + оператор

"<option " + (value.CityCode === 'CEB' ? 'selected' : '') + "></option>" 

Или, выбранный статус может быть сохранен в переменной и эта переменная может быть использована.

var selected = value.CityCode === 'CEB' ? 'selected' : ''; 
"<option " + selected + "></option>" 

Вы также можете использовать prop() установить selected статус.

$("<option />") 
    .val(value.CityCode).text(value.CityName) 
    .prop('selected', value.CityCode === 'CEB'); 
Смежные вопросы