2015-06-18 2 views
1

Это похоже на такой основной вопрос, но я клянусь, что не вижу его в jQuery documentation.Что означает «истина» в селекторе jQuery?

Я унаследовал некоторый код, который делает:

$('.tag', true); 

jQuery docs просто сказать:

JQuery (селектор [контекст])

И 'истинный' ISN контекст в этом случае. Это как-то связано с пузырями? Что делает «правда» в селекторе, и где документация охватывает этот вариант использования?

Редактировать: Как отмечает А. Вольф ниже, это не jQuery, это псевдоним для document.querySelector & querySelectorAll.

function $(selector, all) { 
    return base['querySelector'+(all?'All':'')](selector); 
} 
+9

Возможно, человек, написавший этот код, никогда не смотрел на документы, как вы, и просто ввел «истину». Наблюдаете ли вы какие-либо эффекты? – Knelis

+4

Когда я проверяю это, я не получаю никаких результатов, потому что 'true' на самом деле используется контекст, и, очевидно, для' true' не имеет никакого смысла иметь какие-либо элементы DOM. – apsillers

+1

Какая версия jquery? Is/был построен с использованием старой версии? Вы получаете какие-либо ошибки в консоли? Этот селектор выглядит некорректно. – Liam

ответ

3

Так $ не относится к JQuery, но и пользовательский метод. Тогда параметр true не имеет ничего общего с контекстом. :)

+1

Хех, хорошая интуиция! – AmmarCSE

2

Фактически существует значительная разница.

Передача true заставляет контекст возвращаемого объекта jQuery быть undefined.

$('.tag'), $('.tag', false), и т. Д. Все будут заданы в контексте document по умолчанию.

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

проверить его ->console.dir($('.tag', true));