Печать массива массивов из ввода значения в таблицу html - PullRequest
0 голосов
/ 05 августа 2020

Я пытаюсь распечатать двумерный массив, полученный из HTTP-запроса, в значение переменной, используя этот код

<table style="width:100%">
            <tr>
                <th>Name</th>
                <th>Age</th> 
                <th>School</th>
            </tr>
            <script>
            var x ="", i;
            var y ="", j;
            for (i=0; i<value.length; i++) {
                x ="<tr>" + 
                for (j=0; j<3; j++){
                    y = "<td>" + {{ value[i][j] }} + "</td>";
                }
                + "</tr>";
            }
            </script>
</table>

Есть идеи, почему это не работает? : P

Ответы [ 2 ]

0 голосов
/ 05 августа 2020

Вы пытаетесь объединить строку с l oop. Вы не можете сделать это. Кроме того, объявите переменные i и j внутри for l oop, чтобы они автоматически удалялись по завершении l oop. Вам не нужна переменная y, потому что вы можете создать длинную строку как x, а затем использовать ее как внутренний HTML где-нибудь. Наконец, неправильно использовался массив значений. {} используется для создания объекта. Например, var b = {}; Когда вы действительно хотите использовать объект, вы обращаетесь к нему по имени, но вы сказали, что у вас уже есть массив.

    <script>
    var x ="";
    for (var i=0; i<value.length; i++) {
        x +="<tr>"; 
        for (var j=0; j<value[i].length; j++){
            x += "<td>" + value[i][j] + "</td>";
        }
        x += "</tr>";
    }
    //use your output x variable here
    </script>
0 голосов
/ 05 августа 2020

Тег <script> никак не отображается, вам нужно использовать JavaScript методы для манипуляции с DOM

const values = [
    ["name1", "age1", "school1"],
    ["name2", "age2", "school2"],
];
const tbody = document.querySelector("tbody");

for (let i = 0; i < values.length; i++) {
    const tr = document.createElement("tr");
    const fields = values[i];

    for (let j = 0; j < fields.length; j++) {
        const field = fields[j];
        const td = document.createElement("td");

        td.textContent = field;

        tr.appendChild(td);
    }

    tbody.appendChild(tr);
}
<table style="width: 100%;">
    <thead>
        <tr>
            <th>Name</th>
            <th>Age</th>
            <th>School</th>
        </tr>
    </thead>
    <tbody></tbody>
</table>
...