Во время взлома моего проекта в свободное время я наткнулся на загадочное поведение jQuery.
У меня есть собственный плагин проверки, написанный и работающий. В плагине я хотел реализовать некоторые функции с помощью метода .closest().Как ни странно, этот метод возвращает несколько элементов.
Вот пример кода:
this.closest(".control-group")
$(this).closest(".control-group");
Обе приведенные выше строки кода выбирают все четыре элемента с классом "control-group". Этот код, помещенный в мой плагин, работает:
var element_ID = this.attr("id");
$("#" + element_ID).closest(".control-group")
Выше выбирает правильный и только один элемент с классом "control-group".
Я не могу использовать этот «хак», так как не все элементы, которые я хочу проверить, имеют установленное свойство «id», поэтому он не будет работать во всех случаях.
Использование jQuery 1.7.2 (похоже, это последняя стабильная версия). Есть идеи, почему это так?