Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Присвоить класс самому верхнему родителю (https://javascript.ru/forum/misc/59109-prisvoit-klass-samomu-verkhnemu-roditelyu.html)

malefikus13 28.10.2015 13:12

Присвоить класс самому верхнему родителю
 
Народ, помогите разобраться пожалуйста. В общем у меня есть не очень адекватная, древняя структура html в виде таблицы. К моему глубочайшему сожалению, отойти от этого абсурда мне не разрешают.

В примере привожу дэмо кусок этой таблицы.

Мне необходимо сделать так, чтоб в каждой такой конструкции на странице, брался класс картинки ( в моем случае это class="status_off") и копировался в самое верхнее tr.(в примере я закомментировал основные элементы, с которыми нужно пошаманить.)

Т.е. в конечном итоге, при загрузке страницы каждая вот такая картинка должна отдать свой класс самому верхнему родителю данной конструкции => tr.

Т.е. сделать 7 шагов вверх и присвоить класс картинки. Помогите пожалуйста, а то я что-то вообще не соображу. На сколько я понимаю, тут нужно использовать .parentNode, но как это сделать на 7 ступеней вверх я вообще не соображу. Заранее спасибо!

P.S. Таких конструкций на странице всегда разное кол-во. Вся эта конструкция это одна строчка огромной таблицы.

Пример кода тут: https://jsfiddle.net/malefikus13/wtjty2jL/3/

ksa 28.10.2015 13:19

Цитата:

Сообщение от malefikus13
тут нужно использовать .parentNode, но как это сделать на 7 ступеней вверх я вообще не соображу.

Кагбэ так и сделать
1 раз вверх
obj.parentNode

2 раза вверх
obj.parentNode.parentNode

и т.д...

malefikus13 28.10.2015 13:24

ksa,
я попробовал, но что-то не вышло. Может не правильно чего делаю?
var off = Document.getElementsByClassName('status_off');
var parent = off.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
parent.classList.add('status_off');

ksa 28.10.2015 13:28

Цитата:

Сообщение от malefikus13
Может не правильно чего делаю?

Нужно правильно понимать, что возвращает метод
Цитата:

Сообщение от malefikus13
getElementsByClassName

;)

malefikus13 28.10.2015 13:39

ksa,
Ну, на сколько я знаю, он получает название класса и возвращает массив с этими элементами, верно ведь? :)

ksa 28.10.2015 13:42

Цитата:

Сообщение от malefikus13
и возвращает массив

А ты потом что с этим делаешь? :)

Цитата:

Сообщение от malefikus13
var parent = off.parentNode

Это так работают с массивом?

malefikus13 28.10.2015 13:45

ksa,
таааак, понятно. :) Я баран, пойду читать про массивы)) Спасибо. Вернусь, когда прозрею ))


Часовой пояс GMT +3, время: 07:31.