Reputation:
I need to add a .trash class to every element inside a .secondary-images div, except for one .field--name-rd-page-secondary-image div.
I have tried this.
$('.secondary-images *').addClass('trash').not(".field--name-rd-page-secondary-image");
But it doesn't work.
Does anyone know.
Upvotes: 2
Views: 70
Reputation:
This worked for me too.
$('.secondary-images *').not(".field--name-rd-page-secondary-image, .field--name-rd-page-secondary-image .field__item, .field--name-rd-page-secondary-image .field__item picture, .field--name-rd-page-secondary-image .field__item picture source, .field--name-rd-page-secondary-image .field__item picture img").addClass('trash');
I have added extra items because i wanted to avoid all those too.
Upvotes: 1
Reputation: 6006
You have to change your order
$('.secondary-images *').not(".field--name-rd-page-secondary-image").addClass('trash');
Upvotes: 0
Reputation: 207901
Use either:
$('.secondary-images *').not(".field--name-rd-page-secondary-image").addClass('trash');
$('.secondary-images *').not(".field--name-rd-page-secondary-image").addClass('trash');
.trash {
color: red
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="secondary-images">
<p>p</p>
<p>p</p>
<p class="field--name-rd-page-secondary-image">p</p>
<p>p</p>
<p>p</p>
</div>
Or
$('.secondary-images :not(".field--name-rd-page-secondary-image")').addClass('trash');
$('.secondary-images :not(".field--name-rd-page-secondary-image")').addClass('trash');
.trash {
color: red
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="secondary-images">
<p>p</p>
<p>p</p>
<p class="field--name-rd-page-secondary-image">p</p>
<p>p</p>
<p>p</p>
</div>
Upvotes: 1
Reputation: 41893
You had an error with functions order.
.not()
function should be placed before .addClass()
.
$('.secondary-images').not(".field--name-rd-page-secondary-image").addClass('trash');
.secondary-images {
background: lightblue;
height: 50px;
width: 50px;
margin: 5px;
}
.trash {
background: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='secondary-images'></div>
<div class='secondary-images'></div>
<div class='secondary-images field--name-rd-page-secondary-image'></div>
<div class='secondary-images'></div>
Upvotes: 3
Reputation: 161
Place the ".not" before the addClass:
$('.secondary-images *').not(".field--name-rd-page-secondary-image").addClass('trash');
Upvotes: 1