XML DOM атрибут previousSibling

Определение и использование

Атрибут previousSibling возвращает предыдущий sibling узел选定ного узла (предыдущий узел в той же иерархической структуре).

Если такого узла не существует, то этот атрибут возвращает null.

Синтаксис:

elementNode.previousSibling

Подсказки и комментарии

Комментарий:Internet Explorer будет игнорировать пустые текстовые узлы, образованные между узлами (например, символы перевода строки), в то время как Mozilla этого не делает. Поэтому в следующем примере используется функция для проверки типа узла предыдущего sibling узла.

Элементные узлы имеют тип узла 1, поэтому, если предыдущий sibling узел не является узлом элемента, перемещается к предыдущему узлу и проверяется, является ли этот узел узлом элемента. Этот процесс продолжается до тех пор, пока не будет найден предыдущий sibling узел. Этот метод гарантирует, что в Internet Explorer и Mozilla будут получены правильные результаты.

Для получения дополнительной информации о различиях между IE и Mozilla браузерами, пожалуйста, посетите раздел XML DOM на сайте CodeW3C.com DOM браузер в этом разделе.

Пример

Во всех примерах мы будем использовать XML файл books.xmlи JavaScript функция loadXMLDoc()

Следующий фрагмент кода��取 XML-документа,的第一个 <author> элемента,предыдущий sibling узел:

//проверка, является ли предыдущий sibling узел узлом элемента
function get_previoussibling(n)
{
var x = n.previousSibling;
while (x.nodeType!=1)
  {
  x=x.previousSibling;
  }
return x;
}
xmlDoc=loadXMLDoc("books.xml");
var x=xmlDoc.getElementsByTagName("author")[0];
document.write(x.nodeName);
document.write(" = ");
document.write(x.childNodes[0].nodeValue);
var y=get_previoussibling(x);
document.write("<br />Previous sibling: ");
document.write(y.nodeName);
document.write(" = ");
document.write(y.childNodes[0].nodeValue);

Вывод кода выше:

author = Giada De Laurentiis
Предыдущий родственный узел: title = Everyday Italian