Internet Explorer中的Javascript切换
上述两个函数切换div的可见性。它们在除IE(8)之外的所有浏览器中都能完美工作,我不知道出了什么问题。我尝试了调试器,但没有显示任何内容。这些函数与其他正在工作的函数一起位于外部脚本上。当我在函数内部发出警报时,一切似乎都井然有序。有人能帮忙吗Internet Explorer中的Javascript切换,javascript,html,debugging,Javascript,Html,Debugging,上述两个函数切换div的可见性。它们在除IE(8)之外的所有浏览器中都能完美工作,我不知道出了什么问题。我尝试了调试器,但没有显示任何内容。这些函数与其他正在工作的函数一起位于外部脚本上。当我在函数内部发出警报时,一切似乎都井然有序。有人能帮忙吗 ?问题在于getAttribute('class')显然IE不接受这一点。因此,我使用类名。在所有浏览器中都能完美运行。像jQuery这样的Javascript库在这里是不可能的吗?这可以用jQuery编写成几行代码,你就不太可能遇到浏览器不兼容的问题
?问题在于
getAttribute('class')
显然IE不接受这一点。因此,我使用类名
。在所有浏览器中都能完美运行。像jQuery这样的Javascript库在这里是不可能的吗?这可以用jQuery编写成几行代码,你就不太可能遇到浏览器不兼容的问题。我最初是在jQuery中这样做的,这也是一个类似的问题,所以我用javascript编写代码,一开始似乎解决了这个问题,但不,Internet Explorer不喜欢这段代码(你能解释一下这些函数是如何使用的吗?一个JSFIDLE演示也会很酷。我必须与白象公司合作。你花了太多时间编写代码,用jQuery只需几行就可以完成。我不想成为下一个负责维护代码的开发人员。你至少能编写更多的通用函数吗?)不止一个使用特定的函数只做特定的事情?看,你有两个函数可以切换东西…写一个切换函数,两者都可以。你的代码看起来有点像意大利面条。我不是开发人员,也不是程序员。我是一名科学家,试图学习一门新的学科来帮助我完成我的工作。我已经完成了这项工作上面的代码在Jquery中非常简单,除了放在服务器上之外,它工作得非常好,所以我不得不删除它,因为没有任何可以解释的原因它不能工作。上面的代码是两个独立的切换函数。它们都以完全不同的方式切换,并且会因为某种原因单独用于其他工具。我同意你的看法关于Jquery,但其余的我不同意。谢谢你的输入。
function globalModelToggleClicked(modname)
{
var state = this.checked ? true : false;
var display = this.checked ? 'inline-block' : 'none';
var inputs = document.getElementsByTagName('input');
var input_l = inputs.length;
// check uncheck inputs checkboxes
while(input_l--)
{
var input = inputs[input_l];
if(input.getAttribute('class') == modname)
{
input.checked = state;
}
}
// show/ hide all colorings
var main = document.getElementById('main');
var divs = main.getElementsByTagName('div');
var divs_l = divs.length;
var regex = new RegExp(modname);
while(divs_l--)
{
var div = divs[divs_l];
if( regex.test(div.getAttribute('class'))
&& ( /hit/.test(div.getAttribute('class'))
|| /seqBorder/.test(div.getAttribute('class'))
)
)
{
div.style.display = display;
}
}
}
function localModelToggleClicked(modname)
{
var display = this.checked ? 'inline-block' : 'none';
// get parent fieldset
var fieldset = this.parentNode;
while(fieldset.nodeName != 'FIELDSET')
{
fieldset = fieldset.parentNode;
}
// show/ hide all colorings
var divs = fieldset.getElementsByTagName('div');
var divs_l = divs.length;
var regex = new RegExp(modname);
while(divs_l--)
{
var div = divs[divs_l];
if( regex.test(div.getAttribute('class'))
&& ( /hit/.test(div.getAttribute('class'))
|| /seqBorder/.test(div.getAttribute('class'))
)
)
{
div.style.display = display;
}
}
}