Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   DOM, help: Создание элементов динамически (https://javascript.ru/forum/events/60482-dom-help-sozdanie-ehlementov-dinamicheski.html)

javaphp 02.01.2016 21:42

DOM, help: Создание элементов динамически
 
Имеется обычная таблица <table>, с некоторым кол-вом строк <tr> и ячеек <td>. Подскажите: как с помощью document.createElement("td") добавить по одной ячейке <td> в каждую строку <tr>. То есть добавленная ячейка <td> будет последним дочерним элементов в каждой строке <tr>. Может как-то использовать document.getElementsByTagName('tr')?:help:

Lemme 02.01.2016 21:47

Да.

[].forEach.call(document.querySelectorAll('tr'), function(item) {
	var td = document.createElement('td');
	item.appendChild(td);
});

рони 02.01.2016 21:48

javaphp,
https://learn.javascript.ru/modifying-document

рони 02.01.2016 21:52

<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>

<body>
<table width="400" summary="" >
	<tbody>
		<tr>
			<td>Cell 1.1</td>
			<td>Cell 1.2</td>
			<td>Cell 1.3</td>
		</tr>
		<tr>
			<td>Cell 2.1</td>
			<td>Cell 2.2</td>
			<td>Cell 2.3</td>
		</tr>
	</tbody>
</table>
<script>
[].forEach.call(document.querySelectorAll('tr'), function(item,i) {
	var td = item.insertCell(item.cells.length);
    td.innerHTML = i

});
</script>
</body>

</html>

javaphp 02.01.2016 22:39

Спасибо! Попробовал оба варианта - все работает. Только, подскажите, как вне тела функции вывести количество этих добавлений. То есть не количества всех добавленных <td>, а именно сколько раз они добавлялись в строки. Например вывести это число в console.log().

рони 02.01.2016 22:42

Цитата:

Сообщение от javaphp
То есть не количества всех добавленных <td>, а именно сколько раз они добавлялись в строки.

не осилил

Lemme 02.01.2016 22:59

javaphp, ну, сколько элементов tr, столько и добавлений, т.е

document.querySelectorAll('tr').length;


если правильно понял :-?

javaphp 02.01.2016 23:37

да именно так. уже понял. Еще раз спасибо. Очень помогли мне:)


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