Навигация в DOM
Скажите пожалуйста, как через DOM перейти к предыдущей строчке в таблице? alert(клетка.parentNode.previousSibling.tagN ame) не работает, хотя alert(клетка.parentNode.tagName) выводит положенное TR
|
Всё, я разобрался, между строчками таблицы есть текстовое поле, рабочий вариант клетка.parentNode.previousSiblin g.previousSibling.tagName
|
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> |
Цитата:
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 добавлять |
Цитата:
|
Часовой пояс GMT +3, время: 14:42. |