5

<img>如果源为空,我试图隐藏。但我没有运气。

我在这里找到了一些帖子,但它对我不起作用。

这是我的代码,它是基于表格的,因为它将是一个模板:图像:

<td width="92%" align="center" class="imagenes_desc">
        <a href="#" class="showcase"><img class="imagen" src="http://webs.ono.com/norfolk/ebay/images/01.jpg" width="800"></a>
        <a href="#" class="showcase"><img class="imagen" src="" width="800"></a>
        <a href="#" class="showcase"><img class="imagen" src="" width="800"></a>
        <a href="#" class="showcase"><img class="imagen" src="" width="800"></a>
        <a href="#" class="showcase"><img class="imagen" src="" width="800"></a>
        <a href="#" class="showcase"><img class="imagen" src="" width="800"></a>
        <a href="#" class="showcase"><img class="imagen" src="" width="800"></a>
        <a href="#" class="showcase"><img class="imagen" src="" width="800"></a>
        <a href="#" class="showcase"><img class="imagen" src="" width="800"></a>
        <a href="#" class="showcase"><img class="imagen" src="" width="800"></a>
        </td>

这是我正在尝试实现的 Javascript。

<script type="text/javascript">
        $(document).ready(function(){
            if ($(".imagen").attr(src="") == "") {
                $(".imagen").hide();
            }
            else {
                $(".imagen").show();
            }
</script>

我对 JS 不是很熟悉,我在 Stackoverflow 上找到了这个脚本,但我无法让它工作。

更新

尝试这个,但不起作用(Chrome 隐藏得很好,但 Firefox 和 IE 没有):

<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js'></script>
<script type="text/javascript">
$("imagen").each(function(){

  if ($(this).attr("src") == "") 
       $(this).hide();
  else

      $(this).show();
});
</script>
<style>
.hide {display:none !important;}
.show {display:block !important;}
</style>

谢谢,

4

9 回答 9

21

您可以为此使用 CSS:

img[src=""] {
    display: none;
}
<img src="">
<img src="http://dreamatico.com/data_images/kitten/kitten-2.jpg">

于 2014-12-01T18:53:37.677 回答
6

你的逻辑有缺陷。

if ($(".imagen").attr(src="") == "") {
  $(".imagen").hide();
}
else {
  $(".imagen").show();
}

这将不起作用,因为您已经遍历了每个实例.imagen

$('.imagen').show().filter(function(){
  return $(this).attr('src') == '';
}).parents('a').hide();

上面,我们显示所有.imagen的,然后根据它们的src属性过滤,然后隐藏我们剩下的。

顺便说一句,您可能想要隐藏父<a>元素,而不是图像。

于 2013-04-10T09:47:06.567 回答
6

使用jQuery 的属性选择器怎么样?

    $(document).ready(function(){
        $('.imagen[src=""]').hide();
        $('.imagen:not([src=""])').show();
    });

这里的工作示例

于 2013-04-10T09:56:14.177 回答
2

通过 attr() 获取 src 值的语法错误

改变

if ($(".imagen").attr(src="") == "") {

$(".imagen").each(function(){     
  if ($(this).attr("src") == "") 
       $(this).hide();
  else           
      $(this).show();
});
于 2013-04-10T09:44:54.603 回答
2

我很惊讶你没有某种语法错误而且你的代码也是错误的,因为它没有测试.imagen的每个实例。

像这样做

$(".imagen[src='']").hide();
于 2013-04-10T09:50:55.800 回答
2

Just put space inside alt tag.Here is working code

 <img class="imagen" src="" width="800" alt" ">
于 2017-11-07T11:25:36.917 回答
1

在您的样式表中添加以下代码来定义一个“隐藏”类:

 .hidden {
    display: none;
}

然后添加以下 javascript 代码:

$(document).ready(function() {
   $(".imgagen").each(function() {
        var atr = $(this).attr("src"); 
        if(atr == "") {
            $(this).addClass("hidden");
        } else {
            $(this).removeClass("hidden");
        }
    });
});
于 2016-05-06T14:30:04.750 回答
0

测试 src 属性是否为空,但无论如何 - 如果隐藏图像,包装 A 元素会发生什么情况?相反,不要为那些没有任何图像的人生成 A/IMG 元素。

于 2013-04-10T09:51:21.413 回答
0

您发布的代码应该可以工作,但请确保您已在您的 html 页面的标题上添加了 jquery 库文件。

转到jquery站点,然后下载js文件。然后在 HTML 页面部分 head 上添加以下行:

于 2013-04-10T09:54:40.613 回答