Переменная $ в Chrome?

Я работал с инструментами разработчика Google Chrome на странице без jQuery (или любой другой библиотеки, которая использует $ подписать как ярлык). Когда я проверял $ с помощью консоли (просто набрав его и нажав Enter), я получил это:

$
function () { [native code] }

Таким образом, Chrome имеет некоторую встроенную функцию, на которую может ссылаться $, Кажется, только Chrome имеет это, и я не могу получить к нему доступ через window['$'] ни через document['$'] или же this['$'],

Я не смог выяснить, что это за функция. Знаете ли вы, что он делает, и, возможно, есть некоторая справочная информация по этому вопросу? Заранее спасибо!

6 ответов

Решение

Это снова изменилось, даже с прошлого года.

Консоль devtools обеспечивает $ как псевдоним document.querySelectorнаряду со многими другими вещами; вот выдержка из списка:

  • $(selector) возвращает ссылку на первый элемент DOM с указанным селектором CSS. Эта функция является псевдонимом для document.querySelector() функция.
  • $$(selector) возвращает массив элементов, которые соответствуют данному селектору CSS. Эта команда эквивалентна вызову document.querySelectorAll(),
  • $_ возвращает значение последнего вычисленного выражения.
  • $0, $1, $2, $3 а также $4 Команды работают как хронологическая ссылка на последние пять элементов DOM, проверенных на панели "Элементы", или последние пять объектов кучи JavaScript, выбранных на панели "Профили".

... и куча других.

Обратите внимание, как это называется $ псевдоним document.querySelector, но говорит $$ "эквивалентно" вызову document.querySelectorAll, Ни то, ни другое не кажется буквально правдой; $ === document.querySelector является false, а также $$ возвращает массив, а не NodeList,

Это одна из функций Chrome Developer Tools (недоступно на странице). Вы можете увидеть документацию по нему на странице консоли (хотя это просто говорит о том, что он реализует команды консоли Firebug)

Он получает элемент по его идентификатору.

Существующие ответы устарели, $ не псевдоним для document.getElementById или же document.querySelector, но обертка для querySelector, Эта обертка фактически принимает необязательный второй аргумент для элемента, который запрашивает дочерний элемент.

Это семейство функций описано в разделе " Консоль: выбор элементов":

Выбор элементов

Есть несколько ярлыков для выбора элементов. Это экономит ваше драгоценное время по сравнению с печатью их стандартных аналогов.

$() Возвращает первый элемент, который соответствует указанному селектору CSS. Это ярлык для document.querySelector(),

$$() Возвращает массив всех элементов, которые соответствуют указанному селектору CSS. Это псевдоним для document.querySelectorAll()

$x() Возвращает массив элементов, которые соответствуют указанному XPath.


Однако эти значения являются только значениями по умолчанию в консоли. Если страница перезаписывает переменную, добавляя что-то вроде jQuery, консоль будет использовать значение самой страницы и что-то вроде $('p') вернет объект JQuery, а не только первый p элемент.

Судя по ссылке на инструменты разработчика, он теперь использует document.querySelector(), а не просто getElementById().

https://developers.google.com/chrome-developer-tools/docs/console

Это просто быстрый доступ к document.getElementById.

Есть два селектора в инспекторах Webkit, те же, что и у Mootools один: $ а также $$

Вы можете найти некоторую информацию об этом, здесь

Они здесь, чтобы помочь вам в отладке.

Другие вопросы по тегам