Javascript java脚本:";如果块不存在';不要在低于边缘的环境中工作;

Javascript java脚本:";如果块不存在';不要在低于边缘的环境中工作;,javascript,Javascript,我想使用一个非常小的Java脚本来显示或不显示一个字段,其选项取决于是否选中了一个复选框。 它适用于所有浏览器,但不适用于低于Edge的IE浏览器。 这是“.checked”-方法的问题吗?还是我必须在旧的IEs中为“if-else循环”使用另一种语法 谢谢你的快速回答!更确切地说:我不需要为IE开发这里的if-else块没有问题 这是使用getElementsByClassName方法的问题,像IE6、IE7、IE8这样的旧Internet探索者不支持这种方法 看看这个,你可以在那里找到关于它

我想使用一个非常小的Java脚本来显示或不显示一个字段,其选项取决于是否选中了一个复选框。 它适用于所有浏览器,但不适用于低于Edge的IE浏览器。 这是“.checked”-方法的问题吗?还是我必须在旧的IEs中为“if-else循环”使用另一种语法


谢谢你的快速回答!更确切地说:我不需要为IE开发这里的if-else块没有问题

这是使用
getElementsByClassName
方法的问题,像IE6、IE7、IE8这样的旧Internet探索者不支持这种方法

看看这个,你可以在那里找到关于它的详细讨论

更新

下面是我在IE>8中尝试做的事情,它成功了

看一看,

此外,请确保已将复选框的id正确设置为
opt_18\u 0
函数一或函数二(){
if(选中document.getElementById(“opt_18_0”)){
document.getElementsByClassName(“fieldset_file2”)[0].style.display=“无”;
}否则{
document.getElementsByClassName(“fieldset_file2”)[0].style.display=“block”;
}
}

检查
解决方案(使代码在IE 9至11中也能工作)是将函数设置为变量:

    var reference_to_oneortwo = function oneortwo() {

if(document.getElementById("opt_18_0").checked)

    {
        document.getElementsByClassName("fieldset_file2")[0].style.display = "none";   
    }

 else 

    {
       document.getElementsByClassName("fieldset_file2")[0].style.display = "block";

}

 }
因此,要触发功能,请执行以下操作:

document.getElementById("opt_18_0").addEventListener('click', reference_to_oneortwo , false);
document.getElementById("opt_18_1").addEventListener('click', reference_to_oneortwo , false);
而不是:

opt_18_0.onclick=oneortwo;
opt_18_1.onclick=oneortwo;

不确定附加这样的事件是否在IE中有效的可能重复。请尝试
attachEvent
您是否可以分享您的相关
html
片段?是的,这里是单选按钮的html:OP提到他们的代码在IE下不起作用,没有提到它仅在IE中失败<9问题应该是这个还是IE su支持IE9中的getElementsByClassName这显然是错误的:您的源代码也确认它支持IE9中的
getElementsByClassName
。我假设这个问题应该来自IE9,而不是Edge,因为其他假设没有意义,应该对问题进行编辑以反映这一点。
opt_18_0.onclick=oneortwo;
opt_18_1.onclick=oneortwo;