求html.option.style.display IE的解决办法
登录 | 论坛导航 -> 华新鲜事 -> 求学狮城 | 本帖共有 5 楼,当前显示第 3 楼 : 从楼主开始阅读 : 本帖树形列表 : 返回上一页
作者:大树下 (等级:3 - 略知一二,发帖:26) 发表:2008-06-17 15:21:25  3楼  评分: 
原code如下 function show_hide(id) { if (document.getElementById(id).style.display == 'block') document.getElementById(id).style.display = 'none'; else if (document.getElementById(id).style.display == 'none') document.getElementById(id).style.display = 'block'; document.getElementById('opt').value = 0; } default first option second option third option fourth option show/hide first option show/hide second option show/hide third option show/hide fourth option (more...)
这是IE的一个bug, 有几个workaround的方法
你可以maintain几个array,然后每次都重建所有options或者用add/remove来动态添加/删除受影响的option:

<html>
<head>
<script type="text/javascript">
function show_hide(id, text) {
var op = document.getElementById(id);
var select = document.getElementById("opt");

if (op) {
select.remove(op.index);
return;
}

for (var i=0; i<select.length; i++) {
if (select.options[i].id > id) break;
}

op = document.createElement('option');
op.text=text;
op.id = id;

try {
select.add(op, select.options[i]); // firefox
}
catch (ex) {
select.add(op, i); // ie
}
}
</script>
</head>
<body>
<div style="height: 100px"></div>
<form>
<select id="opt" name="option">
<option id="opt0" value=0 style="display: block">default</option>
<option id="opt1" value=1 style="display: block">first option</option>
<option id="opt2" value=2 style="display: block">second option</option>
<option id="opt3" value=3 style="display: block">third option</option>
<option id="opt4" value=4 style="display: block">fourth option</option>
</select>
</form>
<table>
<tr><td>
<a onclick="show_hide('opt1', 'first option')">show/hide first option</a>
</td></tr><tr><td>
<a onclick="show_hide('opt2', 'second option')">show/hide second option</a>
</td></tr><tr><td>
<a onclick="show_hide('opt3', 'third option')">show/hide third option</a>
</td></tr><tr><td>
<a onclick="show_hide('opt4', 'fourth option')">show/hide fourth option</a>
</td></tr>
</table>
<div style="height: 800px"></div>
</body>
</html>
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表

本帖共有 5 楼,当前显示第 3 楼,本文还有 N-1 层楼,要不你试试看:点击此处阅读更多 >>



请登录后回复:帐号   密码