11
У меня есть строка таблицы, и в этом я имею td (что бы это ни было). Я хотел бы изменить атрибут класса TR моего TD, не используя идентификатор или имя. Например:Доступ Javascript TR от TD
<tr>
<td onclick="[TR].setAttribute('class', 'newName')">My TD</td>
</tr>
Как это сделать?
удивительно, сколько ответов пошли straigh t для jQuery (несмотря на то, что это самая простая вещь, которую можно сделать даже в простой старой DOM), а затем все еще не соответствует синтаксису! – bobince
Это потому, что ответ был изменен после того, как были заданы некоторые вопросы. – Joop
ответ
td
стенды для данных таблицы ..сейчас .. в вашем случае вам нужно
parentNode
свойствоtd
..или bobince предложил в своем комментарии
источник
2010-03-26 15:24:49
+1 для решения проблемы с использованием идентификатора (как указано в запросе) или полагающегося на JQuery – thecoshman
PERFECT! таблица данные ... посмотрю. Спасибо! – arik
'setAttribute ('class')' не работает правильно в IE6-7. Существует множество атрибутов, в которых IE ошибается: по этой причине избегайте 'getAttribute' /' setAttribute' в документах HTML. Вместо этого используйте свойства HTML DOM Level 1: 'this.parentNode.className = 'newName'' более совместим и читаем. – bobince
jQuery, вероятно, самый простой способ сделать это, вы можете использовать селекторы, такие как:
Чтобы добавить класс «красного» ко всем ТР в table.mytable. Это всего лишь верхушка айсберга - убедитесь, что он должен делать то, что вам нужно.
источник
2010-03-26 15:18:10 DCD
Это вообще не отвечает на вопрос. Вы в основном просто сказали ему пойти посмотреть, как использовать jQuery. Не полезно вообще. –
В JQuery, было бы очень просто, если у вас есть ссылка на ваш тд:
Если вы действительно не хотите, чтобы принять зависимость от JQuery, то вы можете просто сделать цикл получения parentNode и проверка его типа как более общего решения. В этом случае вы можете просто получить parentNode, поскольку tr всегда является прямым родителем td. Вы можете сделать что-то вроде этого (заметьте это не тестировалось):
источник
2010-03-26 15:19:43
вы понимаете, что если у вас есть HTML-
Да, я исправил ответ, отметив, что мой сценарий более общего назначения. –
Должно быть parent.nodeName === "TR", а не parent.nodeName = "TD" – Ms2ger
Если вы можете использовать JQuery это может быть что-то вроде этого
Для кода
источник
2010-03-26 15:20:24 rahul
Без любая дополнительная рама:
источник
2010-03-26 15:21:08 Joop
Это не получается на основе td. –
, если у вас есть элемент dom в javascript, вы можете использовать .parentNode(), после чего он даст вам узел perant, который должен быть строкой таблицы. то вы можете установить .className
источник
2010-03-26 15:22:00 thecoshman
Это на самом деле parentNode. –
Спасибо, обновлено. – thecoshman
в javascript это просто: ** document.getElementById ("someTDitem"). ParentNode.style.background = '# 77dd77'; ** – Fattie
Смежные вопросы