user7576961
user7576961

Reputation:

How to specify adding classes

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

Answers (5)

user7576961
user7576961

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

RAUSHAN KUMAR
RAUSHAN KUMAR

Reputation: 6006

You have to change your order

$('.secondary-images *').not(".field--name-rd-page-secondary-image").addClass('trash');

Upvotes: 0

j08691
j08691

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

kind user
kind user

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

Adam Karacsony
Adam Karacsony

Reputation: 161

Place the ".not" before the addClass:

$('.secondary-images *').not(".field--name-rd-page-secondary-image").addClass('trash');

Upvotes: 1

Related Questions