1

質問する前に、この jsFiddle を参照してください: http://jsfiddle.net/AxGHA/3/

私は基本的に float: left; を削除したいと思います。jQuery を使用して div 内に画像が存在しない場合H2およびPタグの StyleSheet 属性。何か案は?

ありがとう!

4

6 に答える 6

7

あなたが使用することができ:not:has私は以下のサンプルコードを実行しました:

$(".section:not(:has(>img))").addClass("no-image");

そしてそのためのCSS:

.no-image h2, .no-image p {
    float: none;
    width: auto;
}

例: http: //jsfiddle.net/voigtan/AxGHA/5/

代わりに">img":

http://jsfiddle.net/voigtan/AxGHA/6/

.sectionにcssクラスを追加し、cssでスタイルを設定します。

于 2012-04-19T16:55:28.773 に答える
2

あなたはこれを行うことができます

$(".section").each(function() {
    var hasImage = $(this).children("img").length != 0;
    if (!hasImage) {
        $(this).find("h2,p").css("float", "none");
    }
});

​

更新されたjsFiddleを確認してください

于 2012-04-19T16:46:58.017 に答える
2
if(!$('div.section img').length) {
   $('p, h2', 'div.section').css('float', 'none');
}
于 2012-04-19T16:43:40.280 に答える
1
!​$('.section img​​​​​​​​​​​​​​​​​').length && $('.section h2, .section p').css('float', 'none');
于 2012-04-19T16:49:19.737 に答える
1

次のようなことができると思います (コードをテストしていないことに注意してください)。

$('h2, p').parent('div').each(function(index, $element) {
    if (!$element.has('img'))
        $element.css('float', 'none');
});

私はどこからjsfiddleを見ることができないことに注意してください。私はあなたが説明したことに直接答えました。

于 2012-04-19T16:50:19.847 に答える
1
    ​$(document).ready(function(){
    if ($("div.section").find("img").length == 0){
        $("h2.section, p.section").css("float", "none")            
    }
});​
于 2012-04-19T16:43:42.947 に答える