Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
抑制JavaScript未定义的错误?_Javascript - Fatal编程技术网

抑制JavaScript未定义的错误?

抑制JavaScript未定义的错误?,javascript,Javascript,我写了一个脚本,检查一组要检查的单选按钮。但由于可能性不同,将显示不同的单选按钮。当JavaScript错误弹出的undefined/getElementById为空时,是否有方法抑制JavaScript错误?类似于PHP中的@-char 更新: 更多的背景信息。我已经建立了一个网站,用户可以提交图片,另一方的图片是谁可以选择他们的前3名的图像。所以每个图像都有三个单选按钮。这里的困难在于单选按钮必须进行尺寸控制(水平和垂直),因为提交的图像可能仅位于位置1、2或3。这是我的工作代码。但是,如果

我写了一个脚本,检查一组要检查的单选按钮。但由于可能性不同,将显示不同的单选按钮。当JavaScript错误弹出的
undefined/getElementById
为空时,是否有方法抑制JavaScript错误?类似于PHP中的
@
-char

更新: 更多的背景信息。我已经建立了一个网站,用户可以提交图片,另一方的图片是谁可以选择他们的前3名的图像。所以每个图像都有三个单选按钮。这里的困难在于单选按钮必须进行尺寸控制(水平和垂直),因为提交的图像可能仅位于位置1、2或3。这是我的工作代码。但是,如果(!var==undefined)添加许多
,则不会使代码更漂亮。因此,我想知道是否有像@suppressMe这样的东西是可能的

function HandleRadioButtons(id, type, idString, img)
{
    var idArray = idString.split("|");  
    var place1  = document.getElementById("G_" + id);
    var place2  = document.getElementById("S_" + id);
    var place3  = document.getElementById("B_" + id);
    var img1    = document.getElementById("Winner1");
    var img2    = document.getElementById("Winner2");
    var img3    = document.getElementById("Winner3");    

    switch(type)
    {
        case "G" :
            place2.checked = false;
            place2.disabled = true;
            place3.checked = false;
            place3.disabled = true;
            img1.style.background = 'url(' + img + ') no-repeat center center #FFF';
            break;
        case "S" :
            place1.checked = false;
            place1.disabled = true;
            place3.checked = false;
            place3.disabled = true;
            img2.style.background = 'url(' + img + ') no-repeat center center #FFF';
            break;
        case "B" :
            place1.checked = false;
            place1.disabled = true;
            place2.checked = false;
            place2.disabled = true;
            img3.style.background = 'url(' + img + ') no-repeat center center #FFF';
            break;
    }     

    var current1, current2, current3 = "";

    for(i = 0; i < idArray.length - 1; i++)
    {
        var place1 = document.getElementById("G_" + idArray[i]);
        var place2 = document.getElementById("S_" + idArray[i]);
        var place3 = document.getElementById("B_" + idArray[i]);

        if(place1.checked == true)
        {
            var current1 = idArray[i];            
        }

        if(place2.checked == true)
        {
            var current2 = idArray[i];            
        }

        if(place3.checked == true)
        {
            var current3 = idArray[i];            
        }
    }

    for(i = 0; i < idArray.length - 1; i++)
    {        
        var place1 = document.getElementById("G_" + idArray[i]);
        var place2 = document.getElementById("S_" + idArray[i]);
        var place3 = document.getElementById("B_" + idArray[i]);

        if(idArray[i] != id && idArray[i] != current1 && idArray[i] != current2 && idArray[i] != current3)
        {
            switch(type)
            {
                case "G" :
                    place1.disabled = false;
                    place2.disabled = false;
                    place3.disabled = false;
                    break;
                case "S" :
                    place1.disabled = false;
                    place2.disabled = false;
                    place3.disabled = false;
                    break;
                case "B" :
                    place1.disabled = false;
                    place2.disabled = false;
                    place3.disabled = false;
                    break;
            }
        }
    }   
}
功能按钮(id、类型、idString、img)
{
变量idArray=idString.split(“|”);
var place1=document.getElementById(“G_U8;”+id);
var place2=document.getElementById(“S_”+id);
var place3=document.getElementById(“B_”+id);
var img1=document.getElementById(“Winner1”);
var img2=document.getElementById(“Winner2”);
var img3=document.getElementById(“Winner3”);
开关(类型)
{
案例“G”:
place2.checked=false;
place2.disabled=true;
place3.checked=false;
place3.disabled=true;
img1.style.background='url('+img+')无重复中心#FFF';
打破
案例“S”:
place1.checked=false;
place1.disabled=true;
place3.checked=false;
place3.disabled=true;
img2.style.background='url('+img+')无重复中心#FFF';
打破
案例“B”:
place1.checked=false;
place1.disabled=true;
place2.checked=false;
place2.disabled=true;
img3.style.background='url('+img+')无重复中心#FFF';
打破
}     
var current1、current2、current3=“”;
对于(i=0;i
您可以通过getElementById检查按钮是否存在,然后检查其长度。您正在使用任何框架吗?

您可以通过getElementById检查按钮是否存在,然后检查其长度。您是否使用任何框架?

您可以轻松测试JavaScript中的
null
未定义的
值,因为这两个值都是错误的:

var element = document.getElementById('some-id');
if (element) {
   element.value = 'Hello';
}
您也可以考虑使用<代码>尝试/ catch <代码>块:

try {
   var element = document.getElementById('some-id');
   element.value = 'Hello';

   // ... the rest of your code here.
}
catch (e) {
   if (!(e instanceof TypeError)) {
      // The exception is not a TypeError, so throw it again.
      throw e;
   }
}

但是,请注意,上述操作将抑制所有
TypeError
异常,这可能会使您的代码更难调试。

您可以轻松测试JavaScript中的
null
未定义的
值,因为这两个值都是错误的:

var element = document.getElementById('some-id');
if (element) {
   element.value = 'Hello';
}
您也可以考虑使用<代码>尝试/ catch <代码>块:

try {
   var element = document.getElementById('some-id');
   element.value = 'Hello';

   // ... the rest of your code here.
}
catch (e) {
   if (!(e instanceof TypeError)) {
      // The exception is not a TypeError, so throw it again.
      throw e;
   }
}
但是,请注意,上述操作将抑制所有
TypeError
异常,这可能会使您的代码更难调试。

请尝试此操作

var element = document.getElementById('some-id');
element?.value = 'Hello';
试试这个

var element = document.getElementById('some-id');
element?.value = 'Hello';

为什么不检查它们是否未定义,或者返回值是否为
null
?听起来您最好还是解决问题的根源。我的意思是,也许有一种方法可以对它进行编码,这样你就可以完全避免它。无论哪种方式,您都应该发布代码。为什么不检查它们是否未定义或返回值是否为
null
?听起来您最好还是修复问题的根源。我的意思是,也许有一种方法可以对它进行编码,这样你就可以完全避免它。无论哪种方式,你都应该发布你的代码。好吧,如果是这样的话仍然是这样。。好吧,如果没有其他选择,那就应该这样做;)谢谢,我明天就试试,谢谢+1从我这里,如果它起作用,你也会得到接受;)我明天再登记。好吧,如果是这样的话,那还是这样。。好吧,如果没有其他选择,那就应该这样做;)谢谢,我明天就试试,谢谢+1从我这里,如果它起作用,你也会得到接受;)我明天会再次检查。请注意,可选链接在V14之前的NodeJS中不起作用。请注意,可选链接在V14之前的NodeJS中不起作用。