2014-11-19 1 views
0

мне нужно переключить видимые/скрытые два различных DIVs если data.entities.length > 0 и это то, что я делаю:Toggle показать/скрыть divs, если data.entities.length> 0, третичный оператор не работает на Javascript/jQuery?

if (data.entities.length > 0) { 
    var toggle = data.entities.length ? true : false; 

    // if condition is true then this will show otherwise it will hides 
    $('#resultadoNorma').toggle(toggle); 

    // this is the reversal process 
    // if condition is true then this will goes hide otherwise it will goes show 
    $("#sinResultadosBuscarNormas").toggle(!toggle); 
} 

Но это не работает, так как ни один DIV является показать/скрыть не имеет значения, что происходит с условием, что неправильно? Могу ли я использовать третичный оператор в Javascript?

+0

Ваш третичный не имеет смысла. Это всегда будет верно, потому что это условие 'if', которое необходимо для его выполнения. – Bergi

ответ

1

Использование условного оператора внутри if() заявление, которое преуспевает только если есть положительная .length, так toggle всегда будет true.

Вы должны удалить заявление if().

var toggle = data.entities.length ? true : false; 

$('#resultadoNorma').toggle(toggle); 
$("#sinResultadosBuscarNormas").toggle(!toggle); 

Или просто избавиться от условной, и передать .length непосредственно. Наверное, хорошая идея, чтобы принудить к логическому.

$('#resultadoNorma').toggle(!!data.entities.length); 
$("#sinResultadosBuscarNormas").toggle(!data.entities.length); 
+0

Это вообще не работает, это '{" message ":" No se encontraron normas "," entities ": []}' есть где 'data.entities.length' происходит, и для этого случая нет объектов, длина которых должна be zero '$ (" sinResultadosBuscarNormas ")' не отображается, а '$ ('# resultadoNorma')' не скрывает – ReynierPM

+0

@ReynierPM: вы отменили его. Когда '.length'' 0', 'sinResultadosBuscarNormas' должен показать, а другой должен скрыться. Так или иначе ваша логика написана в вашем коде. Если вы хотите это наоборот, то измените булевские значения. –

+0

Но если у вас есть какое-то другое значение для того, чтобы «вообще не работать», тогда опишите, что это значит. Вы говорите, что не показываете и не скрываете? Вы должны сообщить эту информацию. –