JQuery Многомерный массив не собирает val в массиве - PullRequest
0 голосов
/ 08 мая 2020

У меня есть таблица с ~ 26 td, и все они являются флажками со значением, определенным для каждого. Может быть бесконечное количество строк.

Вот пример того, как выглядит один из td:

<td style="text-align:center"><input type="checkbox" class="largerCheckbox" id="Missing Date" value="true"'+ZMISSDATE+'></td>

Я хочу создать массив в JQuery, где array покажет значение в каждой строке. Я завершил массив, но когда я консоль записываю его, все мои td для каждой строки выходят пустыми.

Вот мой JQuery для создания массива:

        var mainArray = [];
        $("table#dt-multi-checkbox tr ").each(function(){   /* Loop through all rows of the table(id='dt-multi-checkbox') */
            var tempArray = [];                        /* Declare a temporary array */
            $(this).find('td').each(function(){        /* Loop through all elements inside a row */
                tempArray.push($(this).val());        /* Use array push() function to add an element to the array */
            });
            mainArray.push(tempArray);
        });

        console.log(mainArray);

Может кто-нибудь сказать мне, где я ошибаюсь? Почему value = "true не отображается в моем массиве (из примера td, который я упомянул выше) и как я могу заставить его отображать значение в массиве? Вот пример того, как это выглядит, когда я консоль записываю его:

Array(26)
0: ""
1: ""
2: ""
3: ""
4: ""
5: ""
6: ""
7: ""
8: ""
9: ""
10: ""
11: ""
12: ""
13: ""
14: ""
15: ""
16: ""
17: ""
18: ""
19: ""
20: ""
21: ""
22: ""
23: ""
24: ""
25: ""

Спасибо, и я ценю любое направление, в котором вы можете меня направить.

1 Ответ

1 голос
/ 08 мая 2020

Измените вашу функцию jquery на:

var mainArray = [];
    $("table#dt-multi-checkbox tr ").each(function(){   /* Loop through all rows of the table(id='dt-multi-checkbox') */
        var tempArray = [];                        /* Declare a temporary array */
        $(this).find("input[type='checkbox']").each(function(){        /* Loop through all elements inside a row */
            tempArray.push($(this).val());        /* Use array push() function to add an element to the array */
        });
        mainArray.push(tempArray);
    });

    console.log(mainArray);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...