2017-03-24 203 views
3

我需要一些帮助添加类到一个div如果有一个图像。将类添加到只有一个div

<div class="large-6 columns check-Div"> 
    <div class="custom-table"> 
    <div class="text"> 
     <?php echo $latestimage; ?> 
    </div> 
    <div class="custom-table-box"> 
     <?php echo $table; ?> 
    </div> 
    </div><!-- end custom-table --> 
</div> 
if ($j(".large-6.columns.check-Div > .custom-table-box:contains('size-full')")) { 
    $j('.large-6.columns.check-Div').addClass("hasImage"); 
} 

jQuery的上方添加hasImage类所有的div,但我只希望它时,有一个包含图像的DIV适用。有没有办法单独做到这一点?还是由父母?我已经尝试过,但我有点失落。

任何帮助将是美好的!

+0

谢谢大家谁帮助。这就是我喜欢这个地方的原因。欢呼声和愉快的周末;) – user3502952

回答

2

为此,您可以使用jQuery没必要加,如果条件

jQuery(".custom-table-box:has(img)").parents(".check-Div").addClass("hasImage"); 
+0

Muskesh - 谢谢。解决:) – user3502952

+0

很高兴帮助你:) –

+0

你做了,现在我可以与一天。周末愉快!! – user3502952

2

CSS :已选择是你在找什么(这里的直系后裔)

$('div:has(> img)').addClass("hasImage") //jquery way 

或只是在CSS(但这需要一个polyfill,作为其在4级,这是目前草案)

div:has(> img) { 
    border-color: 1px solid red; 
} 

https://developer.mozilla.org/en-US/docs/Web/CSS/:has

的jsfiddle这里:https://jsfiddle.net/y6gtt2vg/1/


浏览器支持

关于CSS选择器兼容性不管浏览器的支持CSS选择器的

,都选择在api.jquery.com/category/selectors/上市将在作为jQuery函数的参数传递时返回正确的元素集。

https://jquery.com/browser-support/

+2

现在有足够的支持是值得推荐的吗? – mayersdesign

+0

@mayersdesign不幸的是,否则这将是完美的解决方案 –

+0

当用作jQuery选择器,然后jQuery做选择,而不是浏览器... – malejpavouk

2

您可以通过删除if说法,只是基于对:has选择添加该类做到这一点:

$j('.large-6.columns.check-Div:has(img)').addClass('hasImage'); 
+0

感谢你的帮助! – user3502952

0

尝试此代码

$('.large-6 .columns .check-Div div:has(img)').addClass('hasImage'); 
+0

你的选择有一些主要问题 –

2

为清楚起见我增加了额外的背景颜色

$(".custom-table").children("div").each(function(item,index) { 
 
    $(this).has("img").css("background-color", "red"); // Comment it if not needed 
 
    $(this).has("img").addClass("hasImage"); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="large-6 columns check-Div"> 
 
    <div class="custom-table"> 
 
     <div class="text"> 
 
     xyz<img /> 
 
     </div> 
 
     <div class="custom-table-box"> 
 
     abc 
 
     </div> 
 
    </div> 
 
    </div>

+0

谢谢你;) – user3502952

+0

你是welome;) –

0

我想你应该尝试使用ID。

<div id="addImg" class="large-6 columns check-Div"> 
        <div class="custom-table"> 
        <div class="text"> 
        <?php echo $latestimage; ?> 
        </div> 


        <div class="custom-table-box"> 
         <?php echo $table; ?> 
        </div> 
        </div><!-- end custom-table --> 
       </div> 

if ($j(".large-6.columns.check-Div > .custom-table-box:contains('size-full')")) { $j('#addImg').addClass(".hasImage");//also missing . for class }

相关问题