Element.prototype.hide = function() {
this.style.display="none";
};
Вы можете расширить отдельные элементы DOM. Здесь мы добавляем метод hide к прототипу элемента. Если я тогда сделал
document.querySelector("h2").hide();
Первый элемент h2 на странице исчезает.
Это добавление метода на отдельные элементы dom. Если вы хотите действовать на коллекции РОМ элементов, то вам придется расширить прототип NodeList
, который является тип объекта, который вы получите обратно, если вы
document.querySelectorAll("h2");
Одним из способов решения этой проблемы было бы поставить метод hide
для каждого элемента DOM. Затем добавьте другой метод hide
на NodeList
. Может быть, что-то вроде этого:
Element.prototype.hide = function() {
this.style.display="none";
};
NodeList.prototype.hide = function() {
for (var i = 0; i < this.length; i++) {
this[i].hide();
}
};
Добавление этих двух методов даст вам гибкий API, который позволит вам позвонить hide
либо на списки элементов или отдельных элементов.
Затем работает
document.querySelectorAll("h2").hide();
бы скрыть все h2
элементы на странице.
Это не будет поддерживаться в IE6-7. Так что если это проблема для вас, используйте jQuery.
Вы используете JQuery. Это стиль jQuery. – closure
Нет, я не хочу использовать jquery.я попытался написать его, но не разрешил опубликовать это сообщение с этим текстом –
Вы пытаетесь добавить метод к DOM Element? Это не рекомендуется. .hide само по себе является недопустимым именем функции. Префикс точки не допускается. Во-вторых, вы должны попробовать передать элемент DOM в качестве параметра, чтобы скрыть функцию. Я отправлю его в качестве ответа. – closure