2013-04-10 95 views
2

如果源爲空,我試圖隱藏<img>。但我沒有運氣。如果src爲空,則隱藏圖像

我在這裏發現了幾個帖子,但它不適合我。

這裏是我的代碼,它是基於表格的,因爲這將是一個模板: 圖片:

<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上找到了這個腳本,但是我無法使它工作。

更新

嘗試這一點,但不工作(鉻隱藏好,但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

如何使用jQuery's attribute selectors

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

工作example here

+0

工作!謝謝。 – 2013-04-10 09:59:32

+0

明智地使用選擇器:D – 2013-04-10 10:27:39

2

你有錯誤的語法用於獲得src的值attr()

更改

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

$(".imagen").each(function(){  
    if ($(this).attr("src") == "") 
     $(this).hide(); 
    else   
     $(this).show(); 
}); 
+1

仍然無法工作如預期,因爲有多個'.imagen's – 2013-04-10 09:47:56

+1

不,不工作。 – 2013-04-10 09:48:12

+0

是的,我錯過了那部分。 – Adil 2013-04-10 09:51:30

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>元素,而不是圖像。

+0

試過你的解決方案,但沒有奏效。我怎樣才能隱藏父母? – 2013-04-10 09:58:08

+0

它的工作,謝謝。 – 2013-04-10 10:02:59

1

我很驚訝你沒有某種語法錯誤 而你的代碼也是錯誤的,因爲它沒有測試每個.imagen實例。

做這樣的

$(".imagen[src='']").hide(); 
0

測試src屬性如果爲空,但無論如何 - 如果你隱藏的圖像會發生什麼情況包裹A元素?相反,不爲沒有任何圖像的人生成A/IMG元素。

0

你發佈的代碼應該可以工作,但要確保你已經在ur頁面的頭部添加了jquery庫文件。

轉到jQuery網站,然後下載js文件。然後在HTML頁面部分頭上添加以下行:

+1

謝謝,我修改了它,它確定:) – 2013-04-10 10:01:06

+0

請不要投票否定,這可能是他提到的一個愚蠢的錯誤。 – 2013-04-10 10:06:50

9

您可以只使用CSS這樣的:

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

+0

這裏最好也是最簡單的答案。做得好 – 2017-05-16 15:40:01

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"); 
     } 
    }); 
}); 
0

只是ALT tag.Here裏面放的空間運行的代碼

<img class="imagen" src="" width="800" alt" ">