0

divで画像を表示しています。画像が div に含まれていない場合、現在 div を非表示にしています。ただし、ページ内の div の場所によっては、div が空の場合、ページに厚板スポットが表示されます。div が空の場合は折りたたみたいと思います。私は現在これをやっています:

html コード:

    <div id="main" class="main1">
        <div id="div1" class="center"></div>
        <div id="div2" class="center"></div>
        <div id="div3" class="center"></div>

    </div>
    <div id="right" class="right1">
        <div id="div4" class="center"></div>
        <div id="div5" class="center"></div>
        <div id="div6" class="center"></div>
    </div>
</div>

jqueryコード:

$(function () {
                $('#div3').html("").css({ "border": "", "margin": "0" });
                var myImage13 = new Image();
                $(myImage13).load(function () {
        $('#div3').show();
                $("#div3").html(myImage13).css({ "border": "2px solid #E0E0E0" });
                $('#div3').css({ "width": "500px", "height": "500px" });
                $('#div3 img').css({ "width": "500px", "height": "500px" });


                }).attr('src', img_src).error(function () {
                    $('#div3').html("").css({ "border": "", "margin": "0" });
            $('#div3').hide();
                })

            });

$('#div3').remove() を試してみましたが、これで div が完全に削除されます。jqueryで空の場合、divを折りたたむ方法はありますか?

4

3 に答える 3

0

.error jQuery docの引用:

ブラウザーがエラー イベントを発生させる前に、イベント ハンドラーをアタッチする必要があります。これが、この例でハンドラーのアタッチ後に src 属性を設定する理由です。また、ページがローカルで提供される場合、エラー イベントが正しく発生しない場合があります。error は HTTP ステータス コードに依存しており、URL が file: プロトコルを使用している場合、通常はトリガーされません。

つまり、コードの.error.attrに​​配置します。

...
.error(function() {
  $('#div3').html("")
            .css({ border: '', margin: 0 })
            .hide();
}).attr('src', img_src)
...
于 2012-09-19T15:47:09.140 に答える
0

これはあなたが探しているものですか?

$(document).ready(function() { 
       $('div:empty').hide(); 
});
于 2012-09-19T15:47:21.083 に答える
0

これを試すことができる場合、divに画像以外の要素がないと仮定します

var elems = $('#div1, #div2, #div3 , #div4, #div5', #div6);
$.each(elems , function(){
     if( $(this).children.length() < 1)){
       $(this).hide()
     }
});
于 2012-09-19T16:00:17.403 に答える