Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вставить текст в таблицу & задать id <td> (https://javascript.ru/forum/misc/29957-vstavit-tekst-v-tablicu-zadat-id-td.html)

lamer 18.07.2012 21:10

Вставить текст в таблицу & задать id <td>
 
Здравствуйте.
Возникло 2 небольших вопроса.

1. Как разделать таблицы с одинаковыми именами чтоб не считать все элементы на странице а считать элементы конкретной таблицы ?

<html>

<head>
</head>

<body>
<table border="1" width="100%" name="tbl">
	<tr>
		<td>1</td>
		<td>2</td>
	</tr>
	<tr>
		<td>3</td>
		<td>4</td>
	</tr>
</table>

<table border="1" width="100%" name="tbl">
	<tr>
		<td>5</td>
		<td>6</td>
	</tr>
	<tr>
		<td>7</td>
		<td>8</td>
	</tr>
</table>

<script>
var tbl = document.getElementsByName('tbl');
var td = document.getElementsByTagName('td');
td[5].innerHTML = 'TEXT';
</script>
</body>

</html>


В данном коде приходиться считать все <td> чтоб указать конкретный.
Если пытаюсь считать <td> конкретной таблицы то не чего не выходит, сам код:

<script>
var tbl = document.getElementsByName('tbl');
var td = document.getElementsByTagName('td');
tbl[1].td[5].innerHTML = 'TEXT';
</script>


2. Второй вопрос, возможно ли скриптом присваивать идентификатор конкретной <td> ?
Если да то покажите плиз пример кода.
Спасибо.

lord2kim 18.07.2012 21:17

Цитата:

Сообщение от lamer (Сообщение 189769)
Здравствуйте.
Возникло 2 небольших вопроса.

1. Как разделать таблицы с одинаковыми именами чтоб не считать все элементы на странице а считать элементы конкретной таблицы ?

<html>

<head>
</head>

<body>
<table border="1" width="100%" name="tbl">
	<tr>
		<td>1</td>
		<td>2</td>
	</tr>
	<tr>
		<td>3</td>
		<td>4</td>
	</tr>
</table>

<table border="1" width="100%" name="tbl">
	<tr>
		<td>5</td>
		<td>6</td>
	</tr>
	<tr>
		<td>7</td>
		<td>8</td>
	</tr>
</table>

<script>
var tbl = document.getElementsByName('tbl');
var td = document.getElementsByTagName('td');
td[5].innerHTML = 'TEXT';
</script>
</body>

</html>


В данном коде приходиться считать все <td> чтоб указать конкретный.
Если пытаюсь считать <td> конкретной таблицы то не чего не выходит, сам код:

<script>
var tbl = document.getElementsByName('tbl');
var td = document.getElementsByTagName('td');
tbl[1].td[5].innerHTML = 'TEXT';
</script>


2. Второй вопрос, возможно ли скриптом присваивать идентификатор конкретной <td> ?
Если да то покажите плиз пример кода.
Спасибо.

1)
document.getElementsByName("tbl")[0].getElementsByTagName("td").length;

2)
document.getElementsByName("tbl")[0].getElementsByTagName("td")[0].setAttribute("id", "id1");

devote 18.07.2012 21:19

Цитата:

Сообщение от lamer
tbl[1].td[5].innerHTML = 'TEXT';

tbl[1].getElementsByTagName('td')[3].innerHTML = 'TEXT'; // четвертый элемент во второй таблице

lamer 18.07.2012 22:11

lord2kim, devote, Проблема в IE, пишет:
Ошибка: Не удалось получить значение свойства "getElementsByTagName": значением объекта является NULL или он не определен

В вот если присваиваю таблицы идентификатор и по нему делаю то проблем нет, поправить не получиться ? Это так getElementsByTagName на IE рягирует ?

lord2kim 18.07.2012 22:21

lamer, попробуйте так
document.getElementsByTagName("table")[0].getElementsByTagName("td").length;

или обязательно нужно по name ?
а в jQuery работает...
<html>
 
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
 
<body>
<table border="1" width="100%" name="tgl">
    <tr>
        <td name="a">1</td>
        <td>2</td>
    </tr>
    <tr>
        <td>3</td>
        <td>4</td>
    </tr>
</table>

<table border="1" width="100%" name="tgl">
    <tr>
        <td>5</td>
        <td>6</td>
    </tr>
    <tr>
        <td name="a">7</td>
        <td>8</td>
    </tr>
</table>

<script>
alert($("[name='tgl']").length);
</script>
</body>
 
</html>


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