Javascript 元素存在时的jQuery不起作用

Javascript 元素存在时的jQuery不起作用,javascript,jquery,dom-manipulation,Javascript,Jquery,Dom Manipulation,我有一些像这样的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){ $

我有一些像这样的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似乎不起作用


有什么我做错了吗?

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

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

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

$('.box').each(function(){
     if($(this).find('img').length == 0){
         $(this).wrapInner('<div class="box_inner" />');
     }    
});
这在您的代码中指的是窗口对象,您可以使用not方法:

这在您的代码中指的是窗口对象,您可以使用not方法:


尝试>=而不是<。但老实说,我认为您需要添加regex来标识src中的.img。添加这个,而不是1 do==img[src*=\\\/thread\u Try>=而不是<。但老实说,我认为您需要添加regex来标识src中的.img。添加这个,而不是1 do==img[src*=\\\/thread\\谢谢。这是做我想做的事情最简单、最有效的方式。谢谢。这是做我想做的事情最简单、最有效的方式。谢谢你的回答。虽然它正确且可读性好,但它不是最有效的方式。谢谢你的回答!谢谢你的回答。尽管它正确且很好这不是最有效的方法。谢谢你的回答!