Показать сообщение отдельно
  #6 (permalink)  
Старый 07.09.2012, 20:14
Аспирант
Отправить личное сообщение для vitorrio Посмотреть профиль Найти все сообщения от vitorrio
 
Регистрация: 27.08.2012
Сообщений: 69

Да, нашел ошибку.. она была в этом:

var sosed=rod.previousElementSibling;

Этот метод не поддерживает, Нашел тут http://habrahabr.ru/post/54380/
скрипт и с помощью него как я понял будет поддерживать, но чет не работает..:

// Создаем новый элемент для дальнейших проверок
var element = document.createElement("div");

// Проверяем, что браузер не поддерживает ElementTraversal
if(typeof element.firstElementChild == "undefined") {

   // Создаем объект с набором методов
   var ElementTravrsal = {

     // Поиск первого дочернего элемента
     firstElementChild: function() {
       // Получаем первый дочерний узел
       var node = this.firstChild;
       // Находим следующий соседний узел пока не встретили элемент
       // или не получили значение null
       while(node && node.nodeType != 1) node = node.nextSibling;
       // Возвращаем найденный элемент или null
       return node;
     },

     // Поиск последнего дочернего элемента
     lastElementChild: function() {
       // Получаем последний дочерний узел
       var node = this.lastChild;
       // Находим предыдущий соседний узел пока не встретили элемент
       // или не получили значение null
       while(node && node.nodeType != 1) node = node.previousSibling;
       // Возвращаем найденный элемент или null
       return node;
     },

     // Поиск следующего соседнего элемента
     nextElementSibling: function() {
       // Объявляем переменную и инициализируем
       // ее ссылкой на текущий элемент
       var node = this;
       // Находим следующий соседний узел пока не встретили элемент
       // или не получили значение null
       do node = node.nextSibling
       while(node && node.nodeType != 1);
       // Возвращаем найденный элемент или null
       return node;
     },

     // Поиск предыдущего соседнего элемента
     previousElementSibling: function() {
       // Объявляем переменную и инициализируем
       // ее ссылкой на текущий элемент
       var node = this;
       // Находим предыдущий соседний узел пока не встретили элемент
       // или не получили значение null
       do node = node.previousSibling;
       while(node && node.nodeType != 1);
       // Возвращаем найденный элемент или null
       return node;
     },

     // Определение количества дочерних элементов
     // Проверяем, что браузер не поддерживает геттер children
     childElementCount: typeof element.children == "undefined" ? function() {
       // Браузер не поддерживает children,
       // поэтому получаем список всех дочерних узлов
       var list = this.childNodes,
       // определяем их количество
       i = list.length,
       // заводим счетчик элементов
       j = 0;
       // Проходя в цикле по всем дочерним узлам,
       while(i--)
           // если встретился элемент,
         if(list[i].nodeType == 1)
           // увеличиваем счетчик
           j++;
       // Возвращаем количество дочерних узлов или 0
       return j;
     } : function() {
       // Браузер поддерживает children,
       // поэтому получаем список всех дочерних элементов
       // и возвращаем их количество
       return this.children.length;
     }
   };

   // Создаем геттеры для IE8
   if(Object.defineProperty)
     for(var property in ElementTravrsal)
       if(ElementTravrsal.hasOwnProperty(property))
         Object.defineProperty(Element.prototype, property, {
           get: ElementTravrsal[property]
         });

   // для Firefox 2+ и Safari 3+
   if(Object.__defineGetter__)
     for(var property in ElementTravrsal)
       if(ElementTravrsal.hasOwnProperty(property))
         HTMLElement.prototype.__defineGetter__(property, ElementTravrsal[property]);

 }


И что мне теперь делать как прописать это : var sosed=rod.previousElementSibling; чтобы работало?
Ответить с цитированием