Что означает .$ в javascript

#javascript #polymer

Вопрос:

Я был в консоли, пытаясь что-то сделать, когда увидел, что .$ можно использовать вместе с объектом документа для доступа к элементам. Но я не знаю, что это на самом деле делает.

пример :- введите описание изображения здесь

Комментарии:

1. Вероятно, что-то, что библиотека, подобная jQuery, добавила в элемент.

2. но я могу получить доступ к элементам внутри первого #shadow-root, но не могу внутри следующего

3. Должно означать, что скрипт добавляет это свойство. Это не является частью интерфейса элемента DOM.

4. @trincot вы знаете, как мы можем получить доступ к этому снимку элементов с помощью консоли

5. глядя на предупреждение в верхней части вашей консоли (которое я тоже получаю) и обнюхивая ту же страницу с файлами cookie Chrome, я думаю , что это как-то связано с PolymerJS. Но это не библиотека, с которой я знаком, и я не нашел в их документах ничего, что указывало бы, что такое это свойство или что оно делает, поэтому я далеко не уверен. Это определенно библиотека сторонних разработчиков или какой-то пользовательский код, который добавляет это свойство — он не будет работать с большинством элементов на большинстве веб-страниц.

Ответ №1:

После некоторой детективной работы, я предполагаю, что это особое свойство полимерного компонента:

Автоматический поиск узлов

Polymer автоматически создает карту статически созданных узлов экземпляра в своем локальном DOM, чтобы обеспечить удобный доступ к часто используемым узлам без необходимости запрашивать их вручную. Любой узел, указанный в шаблоне элемента с идентификатором, хранится в хэше this.$ по идентификатору.

Я не знаком с полимером, и очень трудно найти (недавнюю) документацию по этому свойству.

Однако я считаю, что мое предположение верно, основываясь на описании выше и снимке экрана ниже. Как вы можете видеть, если вы добавите еще . один после $ , вы получите список предлагаемых свойств. Все это идентификаторы в DOM:

введите описание изображения здесь

Комментарии:

1. Спасибо, что это помогло мне понять это. поэтому я дам вам награду, подождите 1-2 часа, пока я смогу ее дать.

Ответ №2:

Я предполагаю, что это может быть любой глобальный объект под jquery. Точно, у меня нет никакого опыта работы с.$, но просматривайте официальные документы Jquery, это может помочь, или другая возможность заключается в том, что это что-то из базы данных. Причин может быть много. Надеюсь, это поможет..

Ответ №3:

Это должно быть свойство, добавленное к элементу, но не являющееся чем-то особенным.

Примером может быть следующее

 let a = {};
a.$ = {
  b: 1,
  c: 2
};
console.log(a.$); 

Это также даст вам свойства объекта $ in a .

Еще один интересный факт заключается в том, что в Javascript эмодзи также действительны в качестве имени свойства, и поэтому

 let a = {};
a.$ = {
  "😍": 1,
  "😎": 2
};
console.log(a.$["😍"]); 

также работает