AJAX загрузка
home

С помощью предопределенных свойств и методов Вы можете производить различные манипуляции над DOM.

DOM Манипуляции

Для каждого элемента на странице браузер создает в DOM элементный узел.

Каждый элементный узел имеет набор предопределенных свойств и методов. С помощью этих свойств и методов Вы можете производить различные манипуляции над содержимым элементных узлов объектной структуры.

Свойства

С помощью свойства innerHTML Вы можете получить доступ к содержимому текстового узла DOM объекта.

Пример

function change(){
   document.getElementById("par").innerHTML="Я изучаю HTML DOM на 
   <b>wisdomweb.ru</b>!";
}
function changeback(){
   document.getElementById("par").innerHTML="Я изучаю JavaScript.";
}
Быстрый просмотр

С помощью свойства nodeName Вы можете узнать имя узла.

Пример

//Узнаем имя элемента с id=par и сохраним результат в переменную x
x=document.getElementById("par").nodeName;
//Выведим результат на страницу
document.write(x+"<br />");
//Узнаем имя элемента с id=header и сохраним результат в переменную y
y=document.getElementById("header").nodeName;
//Выведим результат на страницу
document.write(y);
Быстрый просмотр

С помощью свойства nodeValue Вы можете узнать значения узла.

Пример

//Узнаем значение свойства первого потомка элемента с id=par и сохраним результат в x
x=document.getElementById("par").childNodes[0].nodeValue;
//Выведим результат на страницу
document.write(x+"<br />");
Быстрый просмотр

С помощью свойства parentNode Вы можете обратиться к родительскому узлу элемента.

Пример

//Узнаем имя родительского узла элемента с id=par и сохраним результат в x
x=document.getElementById("par").parentNode.nodeName;
//Выведим результат на страницу
document.write(x+"<br />");
Быстрый просмотр

С помощью свойства childNodes Вы можете обратиться к узлам потомкам элемента.

Для того, чтобы обратиться к первому узлу потомку используйте childNodes[0], ко второму childNodes[1] и т.д.

Пример

//Узнаем свойство первого потомка элемента с id=par и запишем результат в x
x=document.getElementById("par").childNodes[0].nodeValue;
//Выведим результат на страницу
document.write(x+"<br />");
Быстрый просмотр

С помощью свойства attributes Вы можете обратиться к атрибутам узла.

Нумерация атрибутов идет в обратном порядке. Для того, чтобы обратиться к последнему атрибуту используйте attributes[0], к предпоследнему attributes[1] и т.д.

Пример

//Узнаем значение первого атрибута элемента и запишем результат в x
x=document.getElementById("ww").attributes[0].nodeValue;
//Выведим результат на страницу
document.write(x+"<br />");
Быстрый просмотр

С помощью свойства nodeType Вы можете узнать тип узла.

Элементный узел имеет тип 1, атрибутный узел имеет тип 2, текстовый узел имеет тип 3.

Пример

//Узнаем тип узла и запишем результат в x
x=document.getElementById("par").nodeType;
//Выведим результат на страницу
document.write(x+"<br />");
Быстрый просмотр

Обратите внимание: в данной главе были рассмотрены не все существующие DOM свойства узнать больше можно в нашем HTML DOM Справочнике.

Создание неочевидных потомков

Если при разборе страницы браузер встречает символ без тэгов, он создает для него в DOM текстовый узел.

При редактировании страницы новые тэги переносятся на новую строку, каждый такой перенос осуществляется с помощью символа перевода строки (нажатия клавиши enter). Так как символ перевода строки является символом без тэга, для него будет создан пустой текстовый узел.

Пример

/* Итак мы хотим вывести содержимое тэга p на страницу кажется, что код написан 
верно, но на страницу выведется undefined */
document.write(document.body.childNodes[0].innerHTML+"<br />");
/* Дело в том, что тэг p идущий после body был перенесен на новую строку. 
Соответственно первыйузел-потомок body - это текстовый узел созданный для 
символа перевода строки, а элемент p является вторым потомком. В этом 
мы можем убедится выведя имя первого элемента потомка body */
document.write(document.body.childNodes[0].nodeName+"<br />");
/* А так мы можем вывести содержимое тэга p на страницу и имя 
соответствующего узла */
document.write(document.body.childNodes[1].innerHTML+"<br />");
document.write(document.body.childNodes[1].nodeName);
Быстрый просмотр

Сделайте сами

Задание 1 считайте содержимое элемента с id='zadanie1' и выведите результат на страницу. Во время выполнения заданий из данной главы Вы можете использовать только следующие свойства: childNodes, nodeValue, nodeType, nodeName и attributes.

Обратите внимание: чтобы лучше понимать на каком узле Вы находитесь во время написания кода, используйте свойство nodeName.

Пример

<p id="zadanie1">Попробуйте вывести данное содержимое на страницу с помощью 
скрипта.</p>

Задание 2 считайте содержимое элемента с id='zadanie2' и выведите результат на страницу.

Пример

<div>
<p>Абзац вложенный в div. </p>
<div>
<p id="zadanie2">Попробуйте вывести данное содержимое на страницу с помощью 
скрипта.</p>
</div>
</div>

Задание 3 считайте содержимое, узнайте тип, и значение первого атрибута элемента с id='zadanie3' и выведите результат на страницу.

Пример

<div id="wrap1">
<p>Абзац вложенный в div. </p>
<br />
<div id="wrap11">
<p>Еще один абзац вложенный в div. </p>
</div>
<div id="wrap12">
<h4>Заголовок вложенный в div.</h4>
<div id="wrap121">
<p style="color:green" id="zadanie3">Попробуйте вывести данное содержимое 
на страницу с помощью скрипта.</p>
</div>
</div>
</div>