Ваш код находит все элементы с классом «test», а затем исключает те, которые также имеют класс «обновлен».
Затем, для каждого из этих элементов, вы делаете еще.find()
операция для поиска элементов с классом «тест». Это, однако, не включает вызов .not()
, поэтому, если у вас есть элемент с классом «test», вложенным внутри другого, это будет зависеть от того, имеет ли он уже «обновленный» класс.
Я думаю, что ваш код действительно должен быть просто так:
var interval = setInterval(function() {
$('.test').not('.updated').addClass("updated");
}, 3000);
Вам не нужен .each()
потому .addClass()
сделает это за вас.
редактировать — если вам нужно больше работать внутри .each()
, ваш код будет выглядеть следующим образом:
var interval = setInterval(function() {
$('.test').not('.updated').each(function(){
var $parentDiv = $(this).parent('div');
// do something
$(this).addClass("updated");
//Above: change this element's status
});
}, 3000);
Внутри .each()
обратного вызова, this
будет связан с каждым из выбранных элементов из внешняя последовательность jQuery: набор элементов, которые имеют класс «test», но не «обновленный» класс. Если вы снова используете $(".test")
внутри обратного вызова .each()
, который начнется сначала и найдет все элементы с классом «тест» на всей странице.
Есть ли у вас вложенный класс 'test'? – Azim