2015-12-15 67 views
0

如果a.img-thumb里面没有<img>标记,我想为div.container添加Class = no-thumb。jQuery addClass if not()has()元素

<div class="container lrg-med"> 
    <a class="img-thumb" href="#"></a> 
    </div> 

使用以下但不工作,我究竟做错了什么?

jQuery(".container.lrg-med").not(":has(img)").addClass("no-thumb"); 
+0

注意:如果a.img-thumb内部没有< img >标记! –

+0

你的代码似乎工作得很好? – adeneo

+0

http://jsfiddle.net/6z91xwoc/1/ – adeneo

回答

1

敷在DOM Ready

jQuery(function(){ 
    jQuery(".container.lrg-med").not(":has(img)").addClass("no-thumb"); 
}); 

也许你正在做它之前的DOM准备

0

等到DOM准备。为此使用document.read

$(document).ready(function(){ 
    $(".container.lrg-med").each(function() { 
     if($('.img-thumb',$(this)).length == 0){ 
      $(this).addClass("no-thumb"); 
     } 
    }); 
}); 
+0

你能说出OP的代码有什么问题吗? – void

+0

代码未包装在document.ready中。他并没有等待DOM准备就绪 – Farhan