1

我有一些这样的HTML。

<div class="box span4">
    <img src="demo/img/tile.png" />
</div>
<div class="box span4">
    Hello
</div>

现在,如果我的盒子里没有图像,我想包装内部内容。如果没有 IF,它就像一个魅力,但我无法让它与 IF 一起使用。

if($('.box').find('img').length < 1){
    $(this).wrapInner('<div class="box_inner" />');
}

我也试过:

if($('.box > img').length < 1){
    $(this).wrapInner('<div class="box_inner" />');
}

我认为这会很简单,而且我以前做过类似的事情,但是当里面没有图像时,似乎没有什么能在盒子的内部内容周围获得另一个 div。

有什么我做错了吗?

4

2 回答 2

3

尝试这个。检查所有带有类框的 div。

$('.box').each(function(){
     if($(this).find('img').length == 0){
         $(this).wrapInner('<div class="box_inner" />');
     }    
});
于 2013-05-15T20:21:54.677 回答
3

this在您的代码中引用window对象,您可以使用not方法:

$('.box').not(':has(img)').wrapInner('<div class="box_inner" />');

http://jsfiddle.net/NpRpk/

于 2013-05-15T20:22:11.210 回答