Есть html:
<table id="table"><template></template></table>
Я задал такую конструкцию:
function gId(id){return document.getElementById(id)}
Node.prototype.qS = function(s){return this.querySelector(s)}
В коде пишу:
var t=gId('table');
console.log(t.qS("template"));
выдает ошибку:
TypeError: t.qS is not a function
где я ошибаюсь?
не стоит модифицировать Node
или Object
.
лучше написать вот так:
function gId(id) {
let el = document.getElementById(id);
if (el && !el.qS) el.qS = qS.bind(el)
else throw new Error('что-то не так')
return el
}
function qS(s) {
return this.querySelector(s)
}
const t = gId('table');
console.log(t.qS("template"));
<table id="table"><template></template></table>
Объекты DOM с точки зрения javascript являются exotic object. В них некоторые языковые механизмы могут отсутствовать или работать странно в зависимости от браузера.
Если вам важна поддержка всех браузеров - то придется использовать другие механизмы. Например, можно обойтись обычной функцией:
function qS (el, selector) {
return el.querySelector(selector);
}
Или же можно сделать свой класс-обертку.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Всем привет, у меня затык с одним делом Мне с бека приходит информация о цене в формате min/max И как бы надо сделать сортировку по этому полю,...
Мне нужно сделать анимацию в модальном окне, которое появляется при клике на кнопкуВ приведенном ниже коде, есть пример рабочей анимации
Всем здравствуйте! Нужна помощьЕсть модальное окно (#pop-up), которое появляется при клике на кнопку
Всем привет,ребят,немного глупый вопрос но как такую конструкцию вывести циклом,чтобы постоянно не дублировать код)