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

6

jQuery の属性セレクターを使用するのはどうですか?

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

作業例はこちら

于 2013-04-10T09:56:14.177 に答える
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 に答える
2

なんらかの構文エラーがないことに驚いています。また、.imagen のすべてのインスタンスをテストするわけではないため、コードも間違っています。

このようにしてください

$(".imagen[src='']").hide();
于 2013-04-10T09:50:55.800 に答える
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 に答える
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

nullの場合はsrc属性をテストしますが、とにかく-画像を非表示にすると、ラップするA要素はどうなりますか? むしろ、画像がないものには A/IMG 要素を生成しないでください。

于 2013-04-10T09:51:21.413 に答える