Reputation: 13
I have following Div structure.
<div class="product-layout">
<div class="product-item-container">
<div class="left-block">
<div class="product-image-container">TitleGoesHere</div>
</div>
<div class="right-block">
<div class="description">
<p>ContentGoesHere </p>
</div>
</div>
<div class="list-block"><button class="addToCart btn-button" type="button" title="Add to cart" onclick="cart.add('55', '1');"><i class="fa fa-shopping-basket"></i></button><button class="wishlist btn-button" type="button" title="wishlist" onclick="wishlist.add('55');"><i class="fa fa-heart"></i></button></div>
</div>
</div>
<div class="product-layout product-grid">
<div class="product-item-container">
<div class="left-block">
<div class="product-image-container">TitleGoesHere</div>
</div>
<div class="right-block">
<div class="description">
<p>ContentGoesHere </p>
</div>
</div>
<div class="list-block"><button class="addToCart btn-button" type="button" title="Add to cart" onclick="cart.add('55', '1');"><i class="fa fa-shopping-basket"></i></button><button class="wishlist btn-button" type="button" title="wishlist" onclick="wishlist.add('55');"><i class="fa fa-heart"></i></button></div>
</div>
</div>
I want to add product-list class if .product-layout has not got any classes defined. i.e
<div class="product-layout product-list">
OR
<div class="product-layout product-grid">
NO CHANGES REQUIRED
IF <div class="product-layout">
THEN ON LOAD ADD CLASS
<div class="product-layout product-list">
I tried below but not working
if(!$(".product-layout").hasClass("product-list") || !$(".product-layout").hasClass("product-grid")){
$(".product-layout").addClass("product-list");
}
Upvotes: 1
Views: 34
Reputation: 20039
Try using :not()
selector
https://api.jquery.com/not-selector/
$('.product-layout:not(.product-list, .product-grid)').addClass('product-list')
.product-list { color: red; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="product-layout">a</div>
<div class="product-layout product-grid">b</div>
Upvotes: 2