получить ссылку на родительский элемент(контейнер)
есть таблица в которой лежит checkbox
<table> <tr> <td class="lefttd" id="cell"> <input id="CheckboxBut" type="checkbox" /> </td> </tr> </table> при нажатии на checkbox нужно найти id родительского элемента,т.е cell. как получить id checkbox'а на который нажали я знаю. Теперь нужно получить ссылку на td в котором находится checkbox. |
Рекурсивно проходите по parentNode и проверяйте наличие у него id.
|
getElementById отменили?
|
Цитата:
|
getElementById никто не отменял. :)
Изначально id неизвестен. это я для примера написал. думаю вариант, который посоветовал B~Vladi мне подойдет с некоторыми модификациями. Дело в том что наличие id проверять не совсем корректно(а если появится в td еще один дочерний элемент с id), но это не критично, тоже можно использовать. В моем случае мне будет удобней использовать такую функцию function getParent(el, parentTagName) { var obj = el; while (obj.tagName !== parentTagName) { obj = obj.parentNode; } return obj; } вешаем на событие, например, onclick: onclick ="getParent(this, 'TD')" всем спасибо |
Я имел ввиду что-то вроде этого:
function getParent(obj, parentTagName) { return (obj.tagName==parentTagName)?obj:getParent(obj.parentNode, parentTagName); } |
Цитата:
rwety, если среди предков не будет ни одного с нужным тегом, то цикл дойдет до html, у которого parentNode равен undefined/null, далее попытка считать свойство obj.tagName приведет к ошибке. B~Vladi, с твоим вариантом та же проблема. |
Цитата:
И код приводился не как универсальный. Цитата:
|
Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 01:46. |