Я считаю, что недостаток заключается в том, что HTML - это грамматика Хомского типа 2 (контекстная свободная грамматика) , а RegEx - грамматика Хомского типа 3 (регулярная грамматика) . Поскольку грамматика типа 2 существенно сложнее, чем грамматика типа 3 (см. Иерархию Хомского ), вы не можете выполнить эту работу. Но многие попробуют, некоторые будут претендовать на успех, а другие найдут ошибку и полностью испортят вас.
Как указала Мари в комментариях, вам нужно обойти закрытие.
Вот простой способ заставить его работать, переместив $(this)
за пределы setInterval
.
$( ".home .images .image-slide div" ).each(function() {
var count = $(this).children().length;
if (count > 1) {
$(this).find("img:first-child").addClass("active");
var self = $(this);
setInterval(function(){
if(self.find('.active').is(":last-child")){
self.find('.active').removeClass("active").fadeOut().parent().find("img:first-child").addClass("active").fadeIn();
} else {
self.find('img.active').removeClass("active").fadeOut().next().fadeIn().addClass("active");
}
}, 4000);
}
});