jquery - 使用 jQuery 在 IE 中隐藏选择选项

标签 jquery html css internet-explorer html-select

我有 2 个选择列表,从第一个列表中选择一个选项决定了第二个列表中可用的选项。这在 Chrome 中效果很好,但是 IE 在更改第一个选择时无法隐藏适当的选项。正在应用 hidden 类,但选项仍然可见。知道如何修改它以在 IE 中工作吗?

Fiddle

$(document).on('change', '#category', function(e) {
  if ($(this).prop('selectedIndex') == 0) {
    $('#condition option').addClass('hidden');
    $('#condition .cat-1').removeClass('hidden');
  } else if ($(this).prop('selectedIndex') == 1) {
    $('#condition option').addClass('hidden');
    $('#condition .cat-2').removeClass('hidden');
  }
});
.hidden {
  display: none !important;
}

#category {
  height: 40px;
}

#condition {
  height: 110px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<select id="category" size="2">
  <option class="cat-1">Group 1</option>
  <option class="cat-2">Group 2</option>
</select>

<select id="condition" size="2">
  <option class="cat-1">Item from group 1</option>
  <option class="cat-1">Item from group 1</option>
  <option class="cat-1">Item from group 1</option>
  <option class="cat-2">Item from group 2</option>
  <option class="cat-2">Item from group 2</option>
  <option class="cat-2">Item from group 2</option>
</select>

最佳答案

您可以将select option保存到变量中,然后删除并重新添加您想要的任何一个。

// saving options
var options = $("#condition option");

$(document).on('change', '#category', function(e) {
  if ($(this).prop('selectedIndex') == 0) {
    // deleteing all options
    $("#condition").empty();
    // adding options only of class .cat-1
    options.filter(".cat-1").each(function() {
      $("#condition").append($(this));
    });
  } else if ($(this).prop('selectedIndex') == 1) {
    // deleteing all options
    $("#condition").empty();
    // adding options only of class .cat-2
    options.filter(".cat-2").each(function() {
      $("#condition").append($(this));
    });
  }
});
#category {
  height: 40px;
}

#condition {
  height: 110px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<select id="category" size="2">
  <option class="cat-1">Group 1</option>
  <option class="cat-2">Group 2</option>
</select>

<select id="condition" size="2">
  <option class="cat-1">Item from group 1</option>
  <option class="cat-1">Item from group 1</option>
  <option class="cat-1">Item from group 1</option>
  <option class="cat-2">Item from group 2</option>
  <option class="cat-2">Item from group 2</option>
  <option class="cat-2">Item from group 2</option>
</select>

关于jquery - 使用 jQuery 在 IE 中隐藏选择选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45168859/

相关文章:

javascript - 如何验证可以将电子邮件作为用户名但也可以使用字母数字字符的用户名字段

html - 修复了滚动文本列旁边的图像

html - 如何仅在将鼠标悬停在按钮上时才更改按钮的颜色?

php - 无账户投票

javascript - 如何仅在流程图中显示日 View 中的图表

javascript - 如何自动为已经结构化的图像库制作动画?

javascript - 选择不带 TR 的表 TD

html - 为什么我的 HERO 不显示上面有文字的图像?

html - 中心图像不起作用?

javascript - .append(&lt;input type ="button") 之后单击是否有效?