我似乎无法在循环中隐藏某些选项值。此刻,整个选项选择值都被隐藏了。我该如何运作?

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();
    }
   });
 }
}


还有没有更好的方法可以实现我的目标?

最佳答案

您需要检查循环中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

关于javascript - 使用jQuery inArray并隐藏选项值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27753367/

10-09 23:55
查看更多