0

私のHTML構造は次のようになります

<div class="container">
    <div class="image"><img /></div>
    <div class="title_body">
        <div class="title">Title</div>
        <div class="body">Body text</div>
    </div>
</div>

画像は画像の左側にあり、title+bodyは画像の右側にあります。

私がやりたいのは、画像が存在しない場合にtitle_body divを100%幅にすることです。.containerがたくさんあり、.imageが欠落しているコンテナでdivを100%にしたいだけです

4

4 に答える 4

2

(タイトルが示すように)jQueryが代替手段である場合は、単純に実行してから、とは異なる$('div.container:has(div.image)').addClass('has-img')スタイルにすることができます。div.container.has-imgdiv.container

于 2012-07-03T12:14:43.620 に答える
0
$('.container:has(.title_body)').not(function() {
    return $(this).has('.image').length;
}).css('width', '100%');

jQueryを介して手動で幅を設定するのではなく、これを行うクラスを追加することもできます。

于 2012-07-03T12:13:09.880 に答える
0

本当にこれが必要な場合は、長さをチェックしてimgが存在するかどうかを確認できます。複数ある場合は、each()を使用してみてください。

 if(!($(element).length)){ // if the element not exist
   // do something
 }

これがライブデモです


編集:

each()複数ある場合は、を使用した例を次に示します。

$(".image").each(function(){
   if(!($(this).children().length)){ // if img not exits
       $(this).next().width("100%");
   }
});

ライブデモ


編集:divを確認してくださいimage

ライブデモ2

于 2012-07-03T12:16:15.900 に答える
0
$('.container').each(function(){
    if ($(this).has('.image').length == 0) {
        $(this).children('.title_body:first').css('width', '100%');
    }
});​

jsFiddleで例を確認してください

于 2012-07-03T12:20:33.383 に答える