Свойства узлов: тип, тег и содержимое
Теперь давайте более внимательно взглянем на DOM-узлы.
В этой главе мы подробнее разберём, что они собой представляют и изучим их основные свойства.
Классы DOM-узлов
Каждый DOM-узел принадлежит соответствующему встроенному классу.
Корнем иерархии является EventTarget, от него наследует Node и остальные DOM-узлы.
На рисунке ниже изображены основные классы:
Существуют следующие классы:
- EventTarget – это корневой «абстрактный» класс для всего. Объекты этого класса никогда не создаются. Он служит основой, благодаря которой все DOM-узлы поддерживают так называемые «события», о которых мы поговорим позже.
- Node – также является «абстрактным» классом, и служит основой для DOM-узлов. Он обеспечивает базовую функциональность: parentNode , nextSibling , childNodes и т.д. (это геттеры). Объекты класса Node никогда не создаются. Но есть определённые классы узлов, которые наследуются от него (и следовательно наследуют функционал Node ).
- Document, по историческим причинам часто наследуется HTMLDocument (хотя последняя спецификация этого не навязывает) – это документ в целом. Глобальный объект document принадлежит именно к этому классу. Он служит точкой входа в DOM.
- CharacterData – «абстрактный» класс. Вот, кем он наследуется:
- Text – класс, соответствующий тексту внутри элементов. Например, Hello в
Hello
.
- Comment – класс для комментариев. Они не отображаются, но каждый комментарий становится членом DOM.
- HTMLInputElement – класс для тега ,
- HTMLBodyElement – класс для тега ,
- HTMLAnchorElement – класс для тега ,
- …и т.д.
Также существует множество других тегов со своими собственными классами, которые могут иметь определенные свойства и методы, в то время как некоторые элементы, такие как , и , не имеют каких-либо определенных свойств, поэтому они являются экземплярами класса HTMLElement .
Таким образом, полный набор свойств и методов данного узла является результатом цепочки наследования.
Рассмотрим DOM-объект для тега . Он принадлежит классу HTMLInputElement.
Он получает свойства и методы из (в порядке наследования):
- HTMLInputElement – этот класс предоставляет специфичные для элементов формы свойства,
- HTMLElement – предоставляет общие для HTML-элементов методы (и геттеры/сеттеры),
- Element – предоставляет типовые методы элемента,
- Node – предоставляет общие свойства DOM-узлов,
- EventTarget – обеспечивает поддержку событий (поговорим о них дальше),
- …и, наконец, он наследует от Object , поэтому доступны также методы «обычного объекта», такие как hasOwnProperty .
Для того, чтобы узнать имя класса DOM-узла, вспомним, что обычно у объекта есть свойство constructor . Оно ссылается на конструктор класса, и в свойстве constructor.name содержится его имя:
Как получить содержимое DIV
Как добыть содержимое DIV?
Всем привет! Вопрос от чайника, ногами не пинайте. Итак. Флеш-чат. Кидает новые сообщения в.Как получить содержимое элемента
Здравствуйте. Пожалуйста, покажите пример, как можно получить содержимое блока, например: <div.Как получить содержимое элемента
Доброго времени суток. Подскажите, пожалуйста, как получить содержимое класса job-reply до класса.Как получить содержимое CKEditor’а?
как получить содержимое CKEditor’а? пробовал пободные примеры, но не получается <form>.script> content=document.getElementById("divID").innerHTML //в переменную content попало содержимое элемента, имеющего >script>
var DivHtml = document.getElementByid('myDiv').innerHTML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
function search$() { this.defValue; this.defElem = 'load_page'; this.defElemValue; this.click = function(obj){ this.defValue = obj.value; obj.value = ''; obj.style.color = '#5F5F5F'; this.defElemValue = document.getElementByid(this.defElem).innerHTML; } this.load = function() { alert(this.defElemValue); } this.search = function(obj,elem) { this.defElem = elem; var s = obj.value; var sc = s.length; if(sc > 3) { document.getElementById(elem).innerHTML = ''; api('POST',api_file,'search='+obj.value+'&id='+site_id,elem,'0'); } } this.link = function(article) { api('POST',api_file,'pg='+article+'&id='+site_id,this.defElem,'0'); } } var search$ = new search$();
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
html> head> meta http-equiv="content-type" content="text/html; charset=utf-8" > title>/title> link rel="stylesheet" type="text/css" href="images/style.css"> script type="text/javascript" src="js/script.js" >/script> script> var site_id = 2; var api_file = 'link/system.php'; /script> /head> body> div id="mainPage"> div id="head"> div id="logo"> a href="link"> /a> /div> div id="buttons"> form method="POST"> input type="text" class="search" name="search" value="Начните вводить любое слово" onClick="search$.click(this);return false;" onKeyUp="search$.search(this,'load_page');return false;">
- Text – класс, соответствующий тексту внутри элементов. Например, Hello в