Краткий вопрос:
Как я могу переопределить Встроенную функцию DOM как document.getElementById ()
или создать свою собственную метод , в чистый JS?
Пояснения:
Я работаю над API, который использует атрибуты, чтобы найти div на моей HTML-странице.
Я могу получить атрибуты div, используя этот метод:
for (var att, i = 0, atts = div.attributes, n = atts.length; i < n; i++) {
att = atts[i];
nodeName = att.nodeName;
nodeValue = att.nodeValue;
}
Затем , мне нужно использовать этот кодпроверить атрибуты данного объекта HTML.Я создал метод, который проверяет атрибуты div документа :
document.getElementByIdentifier = function (identifier) {
for (var i = 0; i < this.children.length; i++) {
for (var att, i = 0, atts = div.attributes, n = atts.length; i < n; i++) {
att = atts[i];
nodeName = att.nodeName;
nodeValue = att.nodeValue;
// Here I check the attributes
}
}
}
Однако , я не могу вызвать эту функцию из HTML Dom объект (кроме, здесь, document
объекта).Я не нахожу, как заменить document
на что-то вроде allHTMLElements
в моем методе выше.Цель состоит в том, чтобы иметь такую же свободу использования, как, например, document.getElementById
.
Как мне это сделать?
Примечание: Я очень удивлен, потому что document.getElementById
кажется расположен в объекте document
.Однако, когда я пытаюсь встроить свой собственный метод в этот объект, он не работает. Почему?
Другое примечание : Это ( по крайней мере для меня) объект HTML DOM : var A = document.getElementById ("C");
.Здесь объект A представляет собой объект HTML Dom, который вызывает: «object» от Google Chrome, когда я пытаюсь console.log (typeof A);
.
В противном случае обратите внимание:
Это пример одного из моих дел:
<script identifier="OAdgRzf"></script>
Наконецnote :
Использование document.querySelector
- это то, что я уже использую в своей библиотеке.Однако теперь мне нужно запускать обновления и тесты для элементов, которые вызываются пользователем.Я построил функцию, которая использует document.querySelector
, а затем запускает тесты, но это не очень красиво.
Скажите мне комментарий, если у вас есть вопросы.