Javascript 如果包含的图像为空,我想隐藏父元素

Javascript 如果包含的图像为空,我想隐藏父元素,javascript,jquery,Javascript,Jquery,我有一个带有单元格的表,其中包含一个用来保存图像的div 我想做的是,如果图像本身有一个空的src值,或者如果加载图像时出错,那么将父单元格的显示设置为无 该表实际上会在页面中列出一系列图像,但并非所有图像都是mepty或显示错误 下面的代码显示了表格单元格。。。{}中的信息实际上是作为文本文本传递的动态数据值。如果“img src”的值出错或为空,那么我想将TD的ID显示设置为“无” 我还想处理这样的情况:我的页面上只有一个表,每个div的表中有两个iamges,并且我想为每个div设置

我有一个带有单元格的表,其中包含一个用来保存图像的div

我想做的是,如果图像本身有一个空的src值,或者如果加载图像时出错,那么将父单元格的显示设置为无

该表实际上会在页面中列出一系列图像,但并非所有图像都是mepty或显示错误

下面的代码显示了表格单元格。。。{}中的信息实际上是作为文本文本传递的动态数据值。如果“img src”的值出错或为空,那么我想将TD的ID显示设置为“无”


我还想处理这样的情况:我的页面上只有一个表,每个div的表中有两个iamges,并且我想为每个div设置display=none,因为图像src是无效的URL,或者如果src=”“-请参见下面的示例

<table style="width: 100%;">
<tbody>
    <tr>
        <td>
        <div class="image_container_no_rollover icg_4" id="hldr1">
            <img src="http://lorempixel.com/400/200/" alt="">
        </div>
        <div id="hldr2" >
            <img style="border: 0px none;" src="http://lorempixel.com/400/250/" alt="">
        </div>
        </td>
    </tr>
</tbody>


有几种方法可以实现这一点。例如:

$('td').each(function() {
    if($(this).find('img').attr('src') == "your evaluator here"){
        $(this).css('display', 'none');
    }
});
当然,在运行该代码之前,请确保已加载整个DOM。

以下是操作方法:

$(document).ready(function () {
    $("td").each(function () {
        var $img = $(this).find("img");
        if ($img[0] === undefined) return;

        var td = this;
        $(this).find("img").on("error", function () {
            $(td).css("display", "none");
        });
    });
});

请查看:

我发现有人能够为我提供所需的解决方案,您可以通过更简单的示例看到下面两种情况下的工作结果

在回答第一部分时…隐藏所有表格单元格检查每个单元格内的每个图像,如果指定的图像无效或src=“”则隐藏该单元格

}))


在回答我问题的第二部分时,请查看:[JSFiddle]()

…隐藏其子元素包含无效图像或src=“”的任何元素


查看

您能解释一下您尝试了什么吗?如果这是页面上唯一的表,并且每个图像上有两个单独的图像,我希望如上所述检查,分别隐藏保存每个图像的div,我也想知道如何更改脚本
$(document).ready(function () {
    $("td").each(function () {
        var $img = $(this).find("img");
        if ($img[0] === undefined) return;

        var td = this;
        $(this).find("img").on("error", function () {
            $(td).css("display", "none");
        });
    });
});
$(document).ready(function() {
$("table").find("img").each(function(){
    if(!$(this).attr("src")){
        $(this).closest("td").hide();
    }else{
        var image = new Image(); 
        image.src = $(this).attr("src");
        if (image.width == 0) {
            $(this).closest("td").hide();
        }
    }
});
$(function() {
 $("#tbl01").find("img").each(function(){
  if(!$(this).attr("src")){
    $(this).parent().hide();
  }else{
   $(this).load(function(){
    // ... loaded  
   }).error(function(){
    // ... not loaded
    $(this).parent().hide();
   });
  }
 });
});