Как разбить массив jquery - PullRequest
       10

Как разбить массив jquery

1 голос
/ 27 ноября 2011

У меня есть таблица, и мне нужно получить значения для каждой строки (в массиве), что-то вроде: [{1,'test'}, {2,'another test'}, {3, 'nothing'}], но единственное, что я могу получить: ["1 test", "2 another test","3 nothing"].Мне нужно отправить эти значения с помощью ajax как объект json ... и создать другую таблицу - таким образом мне нужен массив значений ...

var table = $("table");
var rowsAll = table.find("tbody tr");
rowsAll.each(function(i,l) {
    var rows = [];
    $(this).each(function(t,l){
    rows[rows.length] = cells[t]= $(this).text();
    return rows; //returns rows, but I need cells of each row
    }).serialize();//or get()
});

HTML-код выглядит примерно так:

<table id="deal">
<thead>
    <tr>
        <th> num </th>
        <th> string </th>
    </tr>
</thead>
<tbody>
    <tr> <td> 1 </td> <td> test </td> </tr>
    <tr> <td> 2 </td> <td> another test </td> </tr>
    <tr> <td> 3 </td> <td> nothing </td> </tr>
</tbody>
</table>

Мне действительно нужна помощь ...

1 Ответ

3 голосов
/ 27 ноября 2011

Эта форма данных не имеет смысла, так как ее очень трудно читать с помощью JavaScript:

[{1,'test'}, {2,'another test'}, {3, 'nothing'}]

Я собираюсь предположить, что вы хотите это:

{"1": "test", "2": "another test", "3": "nothing"}

Чтобы получить эту вторую форму, вы можете использовать этот код:

var results = {};
$("#deal tbody tr").each(function() {
    var cols = $(this).find("td");
    results[$.trim(cols.eq(0).text())] = $.trim(cols.eq(1).text());
});

Рабочий пример здесь: http://jsfiddle.net/jfriend00/WjgrC/.

...