Javascript 如果图像不存在,如何使用其他图像?使用(';#id';).attr(";src";

Javascript 如果图像不存在,如何使用其他图像?使用(';#id';).attr(";src";,javascript,jquery,image,Javascript,Jquery,Image,我是一名C程序员,试图修复一些我没有创建的代码中的错误。 单击表的一行时,它会设置id为“square”的图像 $('#square').attr("src","image/"+row.id+"_2_1.jpg"); 但是,有些图像名为_3_1.jpg(不在我的控制之下),因此我想检查_2_图像是否存在,如果不存在,则加载一个_3_变体 使用“onerror”似乎不起作用,插入IF语句会停止加载整个表 这就是整个功能: $('#tab

我是一名C程序员,试图修复一些我没有创建的代码中的错误。 单击表的一行时,它会设置id为“square”的图像

$('#square').attr("src","image/"+row.id+"_2_1.jpg");
但是,有些图像名为_3_1.jpg(不在我的控制之下),因此我想检查_2_图像是否存在,如果不存在,则加载一个_3_变体

使用“onerror”似乎不起作用,插入IF语句会停止加载整个表

这就是整个功能:

$('#table').on('click-row.bs.table', function (e, row, $element) {
    if(config["homing_tool"] == "1"){
            $('#detail').show();
            $('#detail1').hide();
            $('#detail2').hide();
            $('.homing').hide();
    }else{
            $('#detail').show();
            $('#detail1').show();
            $('#detail2').show();

            $('#iris').attr("src","image/"+row.id+"_0_1.jpg");
            $('#square').attr("src","image/"+row.id+"_2_1.jpg");
    };
    var x;
    for (x in row) {
        if(x == "type"){
            $('#'+x).html(spec[row[x]]["name"]);
        }else{
            $('#'+x).html(row[x]);
        }
    }
});
编辑: 谢谢你的建议! 所有数据都是本地的,所以据我所知,不需要连接到服务器和使用HTTP请求。
明天我将尝试其他建议。我必须远程访问的电脑比我早6个小时,他们刚刚关闭了一天。

通过一些调试和反复试验,我能够适应我需要的

谢谢大家

为了子孙后代,我使用了:

function getSquareURL(rowid)
{
    var image = new Image();
    
    image.onload = function()
    {
        $('#square').attr("src","image/"+rowid+"_2_1.jpg");
        return true;
    }
    image.onerror = function()
    {
        $('#square').attr("src","image/"+rowid+"_3_1.jpg");
        return false;
    }

    image.src = "image/"+rowid+"_2_1.jpg";
}

通过一些调试和反复试验,我能够适应我所需要的

谢谢大家

为了子孙后代,我使用了:

function getSquareURL(rowid)
{
    var image = new Image();
    
    image.onload = function()
    {
        $('#square').attr("src","image/"+rowid+"_2_1.jpg");
        return true;
    }
    image.onerror = function()
    {
        $('#square').attr("src","image/"+rowid+"_3_1.jpg");
        return false;
    }

    image.src = "image/"+rowid+"_2_1.jpg";
}

一个选项是使用
$.ajax
检查文件是否存在。更好的选项是在后端处理此问题/生成HTMLD的任何内容。这是否回答了您的问题?或者这是否回答了您的问题?更多:“插入if语句会停止整个表”-如果插入
,则可能是因为插入
的方式有问题,但可能与问题无关@freedomn mOne选项中更糟糕的问题是使用
$.ajax
检查文件是否存在。更好的选项是在后端/生成htmlDoes的任何程序中处理此问题。这是否回答了您的问题estion?或者这是否回答了您的问题?更多:“插入IF语句会停止整个表”-可能是您插入
IF
then的方式有问题,但可能与问题无关@freedomn-m我在这里看到过更糟糕的问题