Итерации по каждому элементу брата
Контекст:
Я создаю форму и 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/