jQuery hide()在IE 8上无法正常工作

Chi*_*tle 7 jquery hide internet-explorer-8

在FF中,这会隐藏所有div,然后显示从'#rule_rule_type'菜单中选择的id,这是预期的行为.在IE 8中,它不会隐藏所有div id:

<script type="text/javascript" charset="utf-8">
  (function($){
    $('#rule_rule_type').change(function() {
      $('#allowed_senders, #blocked_senders, #blocked_character_set, #custom').hide();
      var id = $(this).val();
      $('#' + id).show();
    });
  })(jQuery); 
</script>
Run Code Online (Sandbox Code Playgroud)

但是,这可以在IE 8中运行:

<script type="text/javascript" charset="utf-8">
  (function($){
    $('#rule_rule_type').change(function() {
      $('#allowed_senders').hide();
      $('#blocked_senders').hide();
      $('#blocked_character_set').hide();
      $('#custom').hide();
      var id = $(this).val();
      $('#' + id).show();
    });
  })(jQuery); 
</script>
Run Code Online (Sandbox Code Playgroud)

这很麻烦.如何清理它以使其更简洁并仍在IE 8中工作?

谢谢,
Chip Castle
http://invoicethat.com

Ken*_*ler 0

我还没有看到您的 HTML,但是您上面命名和引用 ID 的方式表明您可能多次使用同一个 ID。只是一个猜测。