#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.$["😍"]);
также работает