display ='none'在Mozilla中有效,但在Chrome中无效

时间:2012-12-17 13:23:33

标签: javascript

  

可能重复:
  Applied style=“display:none” in <option> not working in IE but working Mozilla

我有一个JS应该在列表中搜索并仅显示结果并隐藏其他内容,并且出于某种原因我的代码仅适用于Mozilla,任何想法如何使其在Chrome和IE中运行?

这是代码:

<script type="text/javascript">
                    function searchit1() {
                        arrayAdmins = document.getElementById
                        var keyword = document.getElementById('searchbar1').value;
                        var xx = document.getElementById('allUsers');
                        var xy = document.getElementById('selectedUsers');
                        var selectedAdmins = [];
                        i = 0;
                        for (var i = 0; i < xx.length; i++) {
                            if (xx.getElementsByTagName('option')[i].innerHTML.toLowerCase().indexOf(keyword.toLowerCase()) == 0) {
                                xx.getElementsByTagName('option')[i].style.display = 'block';

                            }
                            else {
                                xx.getElementsByTagName('option')[i].style.display = 'none';

                            }
                        }
                        var j = xy.length;
                        for (var i = 0; i < xy.length; i++) {
                            if (xy.getElementsByTagName('option')[i].innerHTML.toLowerCase().indexOf(keyword.toLowerCase()) == 0) {
                                xy.getElementsByTagName('option')[i].style.display = 'block';

                            }
                            else {
                                xy.getElementsByTagName('option')[i].style.display = 'none';

                            }
                        }
                    }

                </script>

谢谢

1 个答案:

答案 0 :(得分:2)

表单控件的样式在浏览器和操作系统之间并不一致。 Firefox允许您通过操纵<option>属性来显示/隐藏display元素,但Chrome不会。我不确定IE。

最安全的方法是在某处(一组值或对象)获得完整的选项列表,并根据需要在<select>中添加/删除元素。