2

<table>テキストの配列として、 a から an 配列にテキストを配置しようとしています。

サンプル HTML:

<table class="sort">
    <caption>Census Data</caption>
    <tr>
        <th class="alpha">First Name:</th>
        <th class="alpha">Last Name:</th>
        <th class="date">Date of Birth:</th>
        <th class="numeric">Age:</th>
        <th class="alpha">Gender:</th>
    </tr>
    <tr>
        <td>Peter</td>
        <td>Parker</td>
        <td>12/23/1975</td>
        <td>36</td>
        <td>Male</td>
    </tr>
    <tr>
        <td>John</td>
        <td>Doe</td>
        <td>06/09/1982</td>
        <td>30</td>
        <td>Male</td>
    </tr>
</table>

最終的な目標は、次のような配列を持つことです。

var array = [
             ["Peter", "Parker", "12/23/1975", "36", "male"], 
             ["John", "Doe", "06/09/1982", "30", "male"]
            ];

これは私が現在持っているものです。私の問題は、内部リターンが外部マップに到達したときに実際には配列ではないことにあるようです。alert(innerArray.toString());カンマ区切りの文字列が内部の文字列であるかのように表示されますが、外部では、join配列を多次元にするのではなく、1 つにしているように見えます。

var outerArray = $(".sort tr").not(":first-child").map(function(){
    var innerArray = $(this).children().map(function(){
       return $(this).text();
    }).toArray();           
    return innerArray;
}).toArray();
4

2 に答える 2

2

マップを使ってそれを行うためのいくつかの素晴らしい方法があるかもしれませんがeach、理解と維持がより簡単であるため、私は単にループすることを好みます。

var resultArray = [];

$(".sort tr").not(":first-child").each(function () {
    var innerArray = [];

    $(this).find('td').each(function () {
        innerArray.push($(this).text());
    });

    resultArray.push(innerArray);
});

実例

于 2013-02-28T17:29:48.010 に答える
0

これを試して :

var outerArray = new Array() ;

$('.sort').children('tr').each(function(i,elem) {
     outerArray.push(elem.children('td')) ;
});
于 2013-02-28T17:14:17.670 に答える