Есть таблицас 2 ячейками. В ней пишу: Код (Text): OnМousеОver="this.left_td.style.backgroundColor = 'red'" Тоесть, при наводке на таблицу нужно изменить фон только левой её ячейки(у неё id="left_td") Но не выходит, через sourceIndex тоже не выходит. В чем ошибка? Возможно ли вообще такое обращение к елементу? Примечание: на странице может быть 20 таблиц с однаковими id="left_td", поэтому getElementbyId - не катит. Помогите плз! Заранее спасибо! [/code]
На странице не может быть более одного элемента с одним и тем же идентификатором: он для того и уникальный идентификатор. HTML: <table><tbody> <tr onmouseover="this.firstChild.style.backgroundColor = 'red';"><td>Left</td><td>center</td><td>right</td></tr> </tbody></table>
AlexGousev, к сожелению не катит Код (Text): <table onmouseover="this.firstChild.style.backgroundColor = 'red';"> <tr> <td width="10">Эта ячейка должна подсвечиватса при наводке на таблицу</td> <td>22</td> <td>333</td> </tr> </table>
[js]this.firstChild.style[/js] Так делать не нужно, т.к. первым ребенком может пролезть пустой текстовый нод. В общем плане делать нужно так: [js]this.getElementsByTagName("td").item(0);[/js] а для строки таблицы, так и вообще: [js]this.cells[0];[/js]
Не может. У tr не может быть подчиненных текстовых нодов. Браузер должен вынимать их из потока и ставить перед таблицей. Забыл я, что есть на этом свете IE. Действительно, у него отображение не соответствует структуре. Текст, отображает перед таблицей, а в DOM'е этот текст таки оставляет внутри tr'a.
То что браузер должен делать и то что будет делать каждый конкретный, это разные вещи лучше не рисковать. Кстати, в этом случае не уверен, что должен. DOM это в первую очередь отображает XML-структуру без привязки к тому, таблица это или не таблица. В том порядке в каком идут в коде, в том и должны быть в дереве. А уже, как это отрисовывать по правилам HTML, другое дело.