Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.08.2012, 23:27
Интересующийся
Отправить личное сообщение для Dazar Посмотреть профиль Найти все сообщения от Dazar
 
Регистрация: 18.04.2012
Сообщений: 24

Навигация в DOM
Скажите пожалуйста, как через DOM перейти к предыдущей строчке в таблице? alert(клетка.parentNode.previousSibling.tagN ame) не работает, хотя alert(клетка.parentNode.tagName) выводит положенное TR

Последний раз редактировалось Dazar, 28.08.2012 в 23:31.
Ответить с цитированием
  #2 (permalink)  
Старый 28.08.2012, 23:37
Интересующийся
Отправить личное сообщение для Dazar Посмотреть профиль Найти все сообщения от Dazar
 
Регистрация: 18.04.2012
Сообщений: 24

Всё, я разобрался, между строчками таблицы есть текстовое поле, рабочий вариант клетка.parentNode.previousSiblin g.previousSibling.tagName
Ответить с цитированием
  #3 (permalink)  
Старый 29.08.2012, 00:14
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

c previousSibling могут быть проблемы из за текстовых узлов пример ниже
<!DOCTYPE HTML>
<html>
  <head> </head>
  <body>
    <table><tr>
      <td>1</td>  
      <td>2</td>
      <td>3</td>
      
      </tr></table>
    
    
    <script>

var table = document.body.children[0];
      alert(table.rows[0].cells[0].innerHTML )// можно использовать cells && rows
     console.log(table.rows[0].cells[0].nextSibling)// текстовый узел
       console.log(table.rows[0].cells[0].nextSibling.nextSibling)// следущий td
         console.log(table.rows[0].cells[0].nextElementSibling)// следущий td (поддержка ие9+) 
    </script>

  </body>
</html>
Ответить с цитированием
  #4 (permalink)  
Старый 29.08.2012, 06:48
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от cyber
следущий td (поддержка ие9+)
в ИЕ8 легко добавить:
Object.defineProperty( Element.prototype, "nextElementSibling", {
    get: function() {
        return this.nextSibling ?
            this.nextSibling.nodeType === 1 ? this.nextSibling :
            this.nextSibling.nextSibling : null;
    }
});

и previousElementSibling:
Object.defineProperty( Element.prototype, "previousElementSibling", {
    get: function() {
        return this.previousSibling ?
            this.previousSibling.nodeType === 1 ? this.previousSibling :
            this.previousSibling.previousSibling : null;
    }
});
А вот с ИЕ7 и ниже, уже проблемнее... там надо через HTC добавлять
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine

Последний раз редактировалось devote, 29.08.2012 в 06:52.
Ответить с цитированием
  #5 (permalink)  
Старый 29.08.2012, 10:54
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Сообщение от devote Посмотреть сообщение
в ИЕ8 легко добавить:
Object.defineProperty( Element.prototype, "nextElementSibling", {
    get: function() {
        return this.nextSibling ?
            this.nextSibling.nodeType === 1 ? this.nextSibling :
            this.nextSibling.nextSibling : null;
    }
});

и previousElementSibling:
Object.defineProperty( Element.prototype, "previousElementSibling", {
    get: function() {
        return this.previousSibling ?
            this.previousSibling.nodeType === 1 ? this.previousSibling :
            this.previousSibling.previousSibling : null;
    }
});
А вот с ИЕ7 и ниже, уже проблемнее... там надо через HTC добавлять
да мне в лом было, у меня час ночи был , я перед сном написал=)
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить список ВСЕХ элементов DOM Почемучкин Events/DOM/Window 7 16.04.2012 11:33
IE баг со скоростью обработки DOM Rootpassword Events/DOM/Window 2 13.02.2012 18:16
Новый элемент отсутствует в DOM модели StrSprut jQuery 4 19.09.2011 12:50
Как в браузерах реализуются функции DOM (например createElement) iamme Общие вопросы Javascript 7 02.09.2011 20:26
Навигация внутри DOM. Как это сделать нормально? master_alf Events/DOM/Window 10 09.04.2010 10:18