Добавить индекс элемента массива
var sliderLength = $(".quote-wrapp").length;
var pointLength = $(".point").length;
var point = $(".point");
var slide = $(".quote-wrapp");
var activePoint = $(".active");
var activeSlide = $(".active-slide");
var slideNumber;
console.log("sliderLength " + sliderLength);
console.log("pointLength " + pointLength);
point.click(function()
{
point.removeClass("active");
$(this).addClass("active");
slideNumber = $(this).index();
console.log("slideNumber " + slideNumber);
slide.removeClass("active-slide");
slide[slideNumber].addClass("active-slide");
});
мне пишет, что slide[slideNumber].addClass is not a function, я так понимаю я как-то не правильно обратился к массиву и оно его не находит, помогите пожалуйста
Ответы (2 шт):
Автор решения: Igor
→ Ссылка
$(slide[slideNumber]).addClass("active-slide");
или
slide.eq(slideNumber).addClass("active-slide");
Автор решения: Grundy
→ Ссылка
В переменной slide хранится jQuery объект, а не массив, поэтому у этой переменной есть метод .addClass и другие.
При обращении по индексу, например slide[slideNumber] - результатом будет обычный HTMLElement, у которого нет методов jQuery, поэтому нужно обернуть его в jQuery, например передав его в функцию $
$(slide[slideNumber]).addClass("active-slide");
Чтобы получить конкретный элемент из коллекции jQuery можно воспользоваться методом eq
slide.eq(slideNumber).addClass("active-slide");