#javascript #html #arrays #for-loop
Вопрос:
Как я могу перебирать массив в JavaScript, добавляя каждый элемент в таблицу HTML с помощью кнопки? (т. е. нажмите кнопку, и «Ригатони» будет добавлен в таблицу.)
function New_Item() {
const Ingredients = ["Rigatoni", "Pesto", "Crushed Tomatoes", "Pasta Water", "Mozzarella Cheese", "Fresh Chopped Basil"]
for (var x = 0; x < Ingredients.length; x )
var table = document.getElementById("myTable");
var row = table.insertRow(1);
var cell1 = row.insertCell(0);
cell1.innerHTML = Ingredients;
}
<table id="myTable">
<header>
<tr>
<td>Ingredient</td>
</tr>
</header>
<footer>
</footer>
</table>
<button type="button" onclick="New_Item()">Add Ingredient</button>
Комментарии:
1. Используйте скобки вокруг всего, что должно происходить в
for
цикле. В настоящее время в цикле встречается только первая строка подfor
оператором. Я предлагаю пройти несколько базовых уроков по JavaScript, прежде чем идти дальше.2. Будет полезно, если вы сможете предоставить какой-то дизайн пользовательского интерфейса
Ответ №1:
Если я понимаю, о чем вы спросили, это мое решение.
Редактировать: Я добавил код с циклом вместо кнопки, вы можете удалить тег кнопки.
<script>
var current=0;
const Ingredients = ["Rigatoni", "Pesto", "Crushed Tomatoes", "Pasta Water", "Mozzarella Cheese", "Fresh Chopped Basil"];
function New_Item() {
if (current < Ingredients.length) {
var table = document.getElementById("myTable");
var row = table.insertRow(current 1);
var cell1 = row.insertCell(0);
cell1.innerHTML = Ingredients[current];
current ;
}
}
/* Second version with loop */
window.onload = function(e) {
Ingredients.forEach(function(item, index, array) {
New_Item_with_loop(index);
});
}
function New_Item_with_loop(index) {
var table = document.getElementById("myTable");
var row = table.insertRow(index 1);
var cell1 = row.insertCell(0);
cell1.innerHTML = Ingredients[index];
}
</script>
<table id="myTable">
<header>
<tr>
<td>Ingredient</td>
</tr>
</header>
<footer>
</footer>
</table>
<button type="button" onclick="New_Item()">Add Ingredient</button>
Комментарии:
1. Это именно то, что мне нужно! Спасибо. Единственное предостережение, которое у меня есть, заключается в том, что мне нужно использовать это в цикле » Для » или «Пока». Можете ли вы изменить его, чтобы он работал именно так?
2. Я редактирую последний комментарий
Ответ №2:
Вы можете использовать приведенный ниже код.
<table id="myTable">
<header>
<tr>
<td>Ingredient</td>
</tr>
</header>
<tbody>
</tbody>
</table>
<button type="button" onclick="New_Item()">Add Ingredient</button>
<script>
const Ingredients = ["Rigatoni", "Pesto", "Crushed Tomatoes", "Pasta Water", "Mozzarella Cheese", "Fresh Chopped Basil"];
function New_Item() {
var tableBody = document.getElementById('myTable').getElementsByTagName('tbody')[0];
Ingredients.forEach(function(cellData) {
var row = document.createElement('tr');
var cell = document.createElement('td');
cell.appendChild(document.createTextNode(cellData));
row.appendChild(cell);
tableBody.appendChild(row);
});
}
</script>