Изменение Узлов

Рубрика: DOM - Объектная Модель Документа

Здравствуйте, уважаемые читатели блога okITgo.ru! На этот раз мы поговорим о свойствах и методах DOM, позволяющих изменять узлы (точнее их значения) и атрибуты. К примеру свойство nodeValue можно использовать для изменения значения узла, а метод setAttribute() используется для изменения значения атрибута.


Попробуйте Сами – Примеры

Примеры ниже используют XML файл books.xml.
Функция loadXMLDoc(), определенная во внешнем скрипте JavaScript, используется для загрузки файла XML.

Изменить текстовый узел элементов
Этот пример использует свойство nodeValue для изменения текстового узла первого элемента <title> в "books.xml".

Изменить значение атрибутов, используя setAttribute
Этот пример использует метод setAttribute() для изменения значения атрибута "category" первого элемента <book>.

Изменить значение атрибутов посредством nodeValue
Данный пример использует свойство nodeValue для модификации значения атрибута "category" первого элемента <book>.


Изменение Значения Элемента

В DOM любая сущность является узлом. Узлы элементов не имеют текстового значения.

Текст узла элемента хранится в его дочернем узле, который называется текстовым узлом.

Один из способов изменить текст элемента – поменять значение его дочернего текстового узла.


Изменить Значение Текстового Узла

Свойство nodeValue может использоваться для модификации значения текстового узла.

Следующий код меняет текстовое значение первого элемента <title>:

Пример

xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.nodeValue="Самогон как Лечебное Средство";

Попробуйте сами »

Объяснение примера:

  1. Загружаем "books.xml" в xmlDoc посредством loadXMLDoc()
  2. Получаем текстовый узел первого элемента <title>
  3. Меняем значение узла для текстового узла на "Самогон как Лечебное Средство"

Циклический обход и изменение текстового узла всех элементов <title>: Попробуйте сами


Изменение Значения Атрибута

В DOM все атрибуты – это узлы. В отличие от узлов элементов, узлы атрибутов имеют текстовые значения.

Один из способов изменить значение атрибута – изменить его текстовое значение.

Это может быть сделано с помощью метода setAttribute() или посредством изменения свойства nodeValue атрибутивного узла.


Модификация Атрибута с Помощью Метода setAttribute()

Метод setAttribute() устанавливает значение существующего атрибута или создает новый атрибут.

Следующий код изменяет атрибут категории (category) элемента <book>:

Пример

xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.getElementsByTagName(‘book’);
x[0].setAttribute("category","food");

Попробуйте сами »

Объяснение примера:

  1. Загружаем "books.xml" в xmlDoc, используя loadXMLDoc()
  2. Получаем первый элемент <book>
  3. Меняем значение атрибута "category" на "ПИЩА"

Циклический обход всех элементов <title> и добавление нового атрибута: Попробуйте сами

Замечание: Если атрибут не существует, то будет создан новый атрибут (с указанными именем и значением).


Изменение Атрибута Посредством nodeValue

Свойство nodeValue может быть использовано для изменения значения атрибутивного узла:

Пример

xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.getElementsByTagName("book")[0]
y=x.getAttributeNode("category");
y.nodeValue="food";

Попробуйте сами »

Объяснение примера:

  1. Загружаем "books.xml" в xmlDoc, используя loadXMLDoc()
  2. Получаем атрибут "category" первого элемента <book>
  3. Меняем значение узла атрибута на "ПИЩА"

Спасибо за внимание! До новых встреч на страницах сайта okITgo.ru.