2015-01-03 3 views
0

Я думаю, что я почти там, но can not, похоже, может скрыть определенные значения параметров в моем цикле. На данный момент все опции выбора значений скрываются. Может ли кто-нибудь помочь мне настроить это, чтобы заставить его работать?Использование jQuery inArray и скрытие значения параметра

function initialStrandOptions() { 
if($('#component_id_1').prop('checked') == true){ 
    var strand_options = $('.strand_options').find('option') 
    strand_options.each(function(){ 
    if(jQuery.inArray(strand_options, ['4', '5', '6', '7'])){ 
    $(this).hide(); 
    } 
    }); 
} 
} 

Есть ли лучший способ достичь моей цели здесь?

Благодаря

+0

Так вы хотите скрыть параметры, которые находятся в массиве? – dfsq

+0

да, это то, чего я пытаюсь достичь. Скрыть варианты 4,5,6 и 7 – Richlewis

ответ

2

Вы должны проверить значение в настоящее время повторного варианта, на который ссылается this в петле, а также сравнить его с -1 возвращенного inArray:

function initialStrandOptions() { 
    if ($('#component_id_1').prop('checked') == true) { 
     var strand_options = $('.strand_options').find('option') 
     strand_options.each(function() { 
      if (jQuery.inArray(this.value, ['4', '5', '6', '7']) > -1) { 
       $(this).hide(); 
      } 
     }); 
    } 
} 

Demo

+0

спасибо, не понимал, что мне пришлось сравнивать с -1, поскольку я думал, что -1 был возвращен, если не найден – Richlewis

+0

Да, '- 1 означает «не найден». Это то, что вам нужно: скрыть параметры, которые ** не ** '-1' (что означает, найденный в массиве). Таким образом, вы можете использовать '> -1' или'! = -1'. – dfsq

+0

@ Садихасан Спасибо за демонстрацию. – dfsq

Смежные вопросы