JavaScript代码不是';t在XP下工作

JavaScript代码不是';t在XP下工作,javascript,windows-xp,Javascript,Windows Xp,我正在使用这个JS代码来显示和隐藏我这边的一些div元素——它在W7/W8和所有浏览器上都能很好地工作,但是对于XP它根本不起作用,我是不是缺少了XP中支持的JS库之类的东西 感谢您提前回复 <script type="text/javascript"> var divState = {}; function showhide(id) { if (document.getElementById) { var divid = d

我正在使用这个JS代码来显示和隐藏我这边的一些div元素——它在W7/W8和所有浏览器上都能很好地工作,但是对于XP它根本不起作用,我是不是缺少了XP中支持的JS库之类的东西

感谢您提前回复

 <script type="text/javascript">
    var divState = {};
    function showhide(id) {
        if (document.getElementById) {
            var divid = document.getElementById(id);
            divState[id] = (divState[id]) ? false : true;
            //close others
            for (var div in divState){
                if (divState[div] && div != id){
                    document.getElementById(div).style.display = 'none';
                    divState[div] = false;
                }
            }
            divid.style.display = (divid.style.display == 'block' ? 'none' : 'block');
        }
    }
    </script>

var divState={};
函数showhide(id){
if(document.getElementById){
var divid=document.getElementById(id);
divState[id]=(divState[id])?false:true;
//封闭他人
for(divState中的var div){
if(divState[div]&&div!=id){
document.getElementById(div.style.display='none';
divState[div]=false;
}
}
divid.style.display=(divid.style.display='block'?'none':'block');
}
}

这可能是因为
'block'
是div的
显示
的默认值,即如果实际的
样式.display
'
,则div将充当块。尝试像这样反转支票:

divid.style.display = (divid.style.display == 'none' ? 'block' : 'none');

Javascript并不偏向于操作系统。您的XP计算机上的浏览器版本可能存在一些问题-浏览器插件可能会导致冲突。它不太可能与操作系统相关,而是与浏览器相关。打开IE的控制台(F12)并查找错误,然后编辑你的问题以包括你发现的任何错误。这与操作系统无关。最好看看JS是如何在paul irishs Blog上实现和工作的,并尝试在机器上使用所有浏览器-所有浏览器都会导致相同的问题,显示所有div,切换事件不起作用,奇怪的是,在W7电脑上,它工作得很好-但你是对的,也许这只是特定电脑的问题谢谢你的回答-我试过了,但很遗憾它不工作,我将与其他运行XPI的电脑交叉检查。我同意其他评论,它不可能是特定于Windows XP的。你在测试哪个浏览器?我在电脑w7和XP上与IE8和IE9、Chrome、FF和Safari进行了交叉检查。是的,也许这只是一台计算机的问题,我正在寻找一个不是由代码引起的问题。我会再次交叉检查,如果发现问题,我会回复