Итерации по каждому элементу брата

Контекст: Я создаю форму и script, которая будет выполнять ajax-запрос, на основе нажатия определенной кнопки. Существует несколько блоков div с элементами одного и того же класса и на основе блока div, в котором нажата кнопка, будут обрабатываться различные формы.

Как часть начала программы, я начал с явно простого вызова jQuery.

Я пытаюсь добавить событие onclick в определенный класс, а затем пытаюсь получить значение CSS для братьев и сестер этого элемента.

Ошибка: Я получаю сообщение об ошибке TypeError: this.siblings is undefined.

Вопрос: Каков правильный способ перебора братьев и сестер элемента с помощью jQuery?

Мой код:

HTML:

<a class="btn LiveStatsBtn"><span class="btn-label">Get Stats now</span> </a>

JavaScript:

$(document).ready (function()
{ 
    $('.LiveStatsBtn').click(function(){
        this.siblings.each( function () {
            var tx=this.css();
            alert(tx);
        });
    });
});

Ответ 1

В обработчике событий jQuery this относится к элементу DOM и не является объектом jQuery. Вы должны обернуть его одним:

$(this).siblings().each(function() {
  // ...
});

Также обратите внимание, что "братья и сестры" - это функция, поэтому вы должны вызвать ее, чтобы получить новый объект jQuery, который обертывает братья и сестры элементов.

Ответ 2

siblings - это функция, поэтому ей нужны скобки:

$(document).ready (function()
{ 
    $('.LiveStatsBtn').click(function(){
        $(this).siblings().each( function () {
            var tx=$(this).css();
            alert(tx);
        });
    });
}); 

http://api.jquery.com/siblings/