Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Не могу получить доступ к ячейке таблицы (https://javascript.ru/forum/dom-window/4021-ne-mogu-poluchit-dostup-k-yachejjke-tablicy.html)

Andrey2005 14.06.2009 23:38

Не могу получить доступ к ячейке таблицы
 
начал изучать JavaScript, но застрял, помогите вод код
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<table id="tab">
<tr><th>1столбец</th><th>2столбец</th><th>3столбец</th></tr>
<tr><td>1</td><td>2</td><td>3</td></tr>
<tr><td>4</td><td>5</td><td>6</td></tr>
</table>
<script type="text/javascript">
var tabObj = document.getElementById("tab");
var bodyObj = tabObj.tBodies[0];
var rowObj = bodyObj.rows[1];
var cellObj = rowObj.cells[0];
cellObj.nodeValue = "Йа Йачейко";
</script>
</body>
</html>

Текст в ячейкае не меняется, где ошибка ?

Gvozd 14.06.2009 23:54

innerHTML вместо nodeValue
cellObj.innerHTML = "Йа Йачейко";

nodeValue-свойство только текстовых нод, а вы пытаетесь его поменять у тега

либо так, если вы хотите работать именно с текстовой нодой:
cellObj.childNodes[0].nodeValue = "Йа Йачейко";

Andrey2005 15.06.2009 00:03

Цитата:

Сообщение от Gvozd
innerHTML вместо nodeValue

cellObj.innerHTML = "Йа Йачейко";


nodeValue-свойство только текстовых нод, а вы пытаетесь его поменять у тега

либо так, если вы хотите работать именно с текстовой нодой:

cellObj.childNodes[0].nodeValue = "Йа Йачейко";

Спасибо, я просто читаю книгу В.Дронова там на 190 стр. такой пример, вот он и ввёл меня в заблуждение.
Однако в следующем коде всё отрабатывается, почему ?
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<p id="par">Привет</p>
<script type="text/javascript">
var parObj = document.getElementById("par");
var parText = parObj.firstChild;
parText.nodeValue = "Hello";
</script>
</body>
</html>

Тоже ведь у тега меняю

Gvozd 15.06.2009 00:16

Цитата:

Сообщение от Andrey2005
Тоже ведь у тега меняю

вообще-то нет
после кода
var parObj = document.getElementById("par");
var parText = parObj.firstChild;

parObj ссылается на тег <p id="par" />
partext ссылается на первого потомка тега <p id="par" />, который является текстовой нодой

для того чтобы прояснить для себя этот очень важный момент, прочитайте цикл статей http://javascript.ru/start/dom

Andrey2005 15.06.2009 00:34

Спасибо, за разъяснение. Обязательно прочту Ваши рекомендации :yes:


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