0

可能重复:
在 <option> 中应用的 style=“display:none” 在 IE 中不起作用,但在 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>

谢谢

4

1 回答 1

2

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

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

于 2012-12-17T13:29:18.813 回答