2016-07-15 68 views
0

我想显示/隐藏多选列表中的某些元素;我的代码在Chrome中工作正常,但我无法弄清楚它为什么不能在IE中工作。这里只是我的代码的简化版本:隐藏选项不起作用IE

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 

<select id="ID_DropDown" multiple="multiple" name="DropDown"> 
<option value="1">value1</option> 
<option value="2">value2</option> 
<option value="3">value3</option> 
</select> 

<script type="text/javascript"> 
$(document).ready(function() { 
    for (var i = 0; i < ID_DropDown.options.length; i++) { 
     $("#ID_DropDown option[value=" + ID_DropDown.options[i].value + "]").hide(); 
    } 
}); 
</script> 

任何想法? 真的感谢

+0

你能禁用它,而不是隐藏它的? – Barmar

+0

它不会在IE以及其他浏览器中工作。选择是禁用或删除。 – charlietfl

+0

@Barmar是的,我可以禁用或隐藏 – Andrea

回答

0

IE不支持的jQuery的hide()函数,但你可以使用

希望这将帮助你隐藏的元素。

$(document).ready(function() { 
 
    for (var i = 0; i < ID_DropDown.options.length; i++) { 
 
     $("#ID_DropDown option[value=" + ID_DropDown.options[i].value + "]").css({"visibility":"hidden"}); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<select id="ID_DropDown" multiple="multiple" name="DropDown"> 
 
<option value="1">value1</option> 
 
<option value="2">value2</option> 
 
<option value="3">value3</option> 
 
</select>

Plunker:http://plnkr.co/edit/OpZrpgAYaqfyGdcBeakc?p=preview

+0

这种方法会留下空白的空白来代替隐藏的选项。如果你只是隐藏了一些选项,它看起来很丑。例如:http://plnkr.co/edit/7tWNr02Uclr2WyWWEMju – Mir