【发布时间】:2012-07-10 03:46:40
【问题描述】:
我找到了这段代码,它是我问题的完美解决方案,但我发现它在 ie9 中不起作用。有谁知道如何重新编写此代码以在 IE9 中工作?这是它的javascript代码。
function showonlyonev2(thechosenone) {
var newboxes = document.getElementsByTagName("div");
for (var x = 0; x < newboxes.length; x++) {
name = newboxes[x].getAttribute("class");
if (name == 'newboxes-2') {
if (newboxes[x].id == thechosenone) {
if (newboxes[x].style.display == 'block') {
newboxes[x].style.display = 'none';
}
else {
newboxes[x].style.display = 'block';
}
} else {
newboxes[x].style.display = 'none';
}
}
}
}
我在 jsFiddle 中运行它并得到这个错误: 第 4 行字符 9 的问题:只读。
name = newboxes[x].getAttribute("class");
这里还有 HTML 部分(短版去掉了 head 和 body 标签):
<table>
<tr>
<td>
<div style="border: 1px solid blue; background-color: #99CCFF; padding: 5px; width: 150px;">
<a id="myHeader1" href="javascript:showonlyone('newboxes1');" >show this one only</a>
</div>
<div class="newboxes" id="newboxes1" style="border: 1px solid black; background-color: #CCCCCC; display: block;padding: 5px; width: 150px;">Div #1</div>
</td>
<td>
<div style="border: 1px solid blue; background-color: #99CCFF; padding: 5px; width: 150px;">
<a id="myHeader2" href="javascript:showonlyone('newboxes2');" >show this one only</a>
</div>
<div class="newboxes" id="newboxes2" style="border: 1px solid black; background-color: #CCCCCC; display: none;padding: 5px; width: 150px;">Div #2</div>
</td>
<td>
<div style="border: 1px solid blue; background-color: #99CCFF; padding: 5px; width: 150px;">
<a id="myHeader3" href="javascript:showonlyone('newboxes3');" >show this one only</a>
</div>
<div class="newboxes" id="newboxes3" style="border: 1px solid black; background-color: #CCCCCC; display: none;padding: 5px; width: 150px;">Div #3</div>
</td>
</tr>
</table>
这是我的 jsFiddle 视图 http://jsfiddle.net/Nuker_Viper/JvLDx/13/
【问题讨论】:
-
首先,不要只发布一段代码。告诉我们您期望它做什么以及您实际看到的内容。其次,那是javascript,而不是java。我正在为你修复标签。
标签: javascript function cross-browser internet-explorer-9