jQuery .closest() возвращает несколько результатов в пользовательском плагине jQuery

Во время взлома моего проекта в свободное время я наткнулся на загадочное поведение 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 (похоже, это последняя стабильная версия). Есть идеи, почему это так?

5
задан ThinkingStiff 18 March 2013 в 01:19
поделиться