не работает атрибут class в теге <td>
Подскажите, в чем подвох. JS класс изменяет, но цвет текста меняется на черный, а не на зеленый.
<html>
<head>
<title>Test1</title>
<style type="text/css">
table .c { color: red }
.a .c { color: green }
</style>
<script type="text/javascript">
function test1()
{
//document.getElementById("t").children[0].children[0].children[0].className=('class', 'a');
document.getElementById('t').getElementsByTagName('td')[0].setAttribute('class', 'a')
}
</script>
</head>
<body onmousedown="test1()">
<table id="t">
<tr>
<td class="c">Текст</td>
</tr>
</table>
</body>
</html>
|
Цитата:
Ты точно правильный селектор написал? Цитата:
document.querySelector('#t td').className = 'a';
|
<style type="text/css">
table .c { color: red }
.a.c { color: green }
</style>
<body onmousedown="test1()">
<table id="t">
<tr>
<td class="c">Текст</td>
</tr>
</table>
<script type="text/javascript">
function test1(){
document.querySelectorAll('#t td')[0].className = 'a c';
}
</script>
а так работат |
Спасибо.
А почему тогда так не работает:
document.getElementById('t').getElementsByTagName('td')[0].setAttribute('class', 'a c')
|
<style type="text/css">
table .c { color: red }
.a.c { color: green }
</style>
<body onmousedown="test1()">
<table id="t">
<tr>
<td class="c">Текст</td>
</tr>
</table>
<script type="text/javascript">
function test1(){
document.getElementById('t').getElementsByTagName('td')[0].setAttribute('class', 'a c');
}
</script>
|
Работает!
То есть селекторы потомков типа .a.c нужно писать без пробела? |
Причем тут селекторы потомков Даниил же кратко тебе намекнул
Цитата:
<style>
.a.b {
color: red;
}
.a .b {
color: green;
}
</style>
<div class="a b">.a.b
<div class="b">.a .b</div>
</div>
|
Цитата:
Никогда не пиши .setAttribute('class', 'a'). Всегда пиши .className = 'a' Вместо всяких getElement[s]By*** используй querySelector/querySelectorAll. Чо ты упертый-то такой )) |
| Часовой пояс GMT +3, время: 05:01. |