$(element)
возвращает объект, созданный jQuery, который имеет ссылку на элемент.$(array)
то же самое, но с несколькими ссылками.И вот, вы вроде как делаете: $($(element))
за исключением того, что при передаче массива он, очевидно, не проверяет, являются ли они уже объектами jQuery.
Похоже, они об этом не подумалиUseCase.Они не обрабатывают массивы: https://github.com/jquery/jquery/blob/master/src/core.js
Подождите ... они делают:
var b = document.body;
$( [ b.firstChild, b.lastChild ] ).text( );//OK
var b = document.body;
$( [ $( b.firstChild ), $( b.lastChild ) ] ).text( );//FAIL
Кажется, проблема в строке makeArray 645, потому что метод init, кажется, незаботиться о массиве и вызывать makeArray, если ничего не найдено.И makeArray вызывает метод merge, который объединяет объект jQuery (обладающий свойствами, которые должен иметь массив) с результатами селектора или [] и возвращает его.
Проблема решена: https://gist.github.com/947169 Если вы хотитеПосмотрите, как, посмотрите между и
Я опубликую проблему или сделаю запрос на удаление.Пока они не изменят его, вы можете просто включить: https://gist.github.com/raw/947169/6a9711ead197e17a636d7c43b72dc8efd7a6baec/jQuery.js
Билет: http://bugs.jquery.com/ticket/9011 Запрос на извлечение: https://github.com/jquery/jquery/pull/359