jQuery:使用两列中的值创建对象

时间:2014-04-08 14:56:40

标签: jquery arrays object

我对物体很陌生,希望有人可以帮助我。

我有一个表格,如下所示(减少了演示的列和行):

<table id="myTable">
    <thead>
    </thead>
    <tbody>
        <tr>
            <td>1.</td><td>Item 1</td><td>10</td>
        </tr>
        <tr>
            <td>2.</td><td>Item 2</td><td>5</td>
        </tr>
        <tr>
            <td>3.</td><td>Item 3</td><td>3</td>
        </tr>
        //...
    </tbody>
</table>

有没有办法可以使用包含第2列和第3列中所有值的jQuery创建一个对象(数组),并返回与以下内容相同的内容? 这将是完全相同的布局,即单引号,逗号和空格。

[
    ['Item 1', 10],
    ['Item 2', 5],
    ['Item 3', 3],
    //...
]

非常感谢你提供任何帮助,蒂姆。

3 个答案:

答案 0 :(得分:3)

var array = new Array();

$("#myTable tr").each(function(){ 
   array.push(new Array($(this).find("td:eq(1)").text(), $(this).find("td:eq(2)").text()));
});

答案 1 :(得分:1)

我没有测试过这个,但这就是这个想法:

var myAns = [];
$('#myTable tbody').each(function () {
    var row = $(this);
    var rowColumns = [];
    row.each(function (){
        rowColums.push($(this).html());
    })
    myAns.push(rowColumns);
});

//myAns should be in the format you want

希望它有所帮助!

答案 2 :(得分:1)

我也不是Jquery最好的,但我会像这样接近它:

var firstCol = []; 
var secondCol = [];

    $(document).ready(function () {

                    //GET values
                    $("#myTable tr:has(td)").each(function () {
                        var cell = $(this).find("td:eq(1)");
                        firstCol.push(cell.html());


                    });


                        $("#myTable tr:has(td)").each(function () {
                        var cell = $(this).find("td:eq(2)");
                        secondCol.push(cell.html());


                    });
          alert('From first column: ' + firstCol);
        alert('From second column: ' + secondCol);

     });

这是一个FIDDLE

编辑:嘿嘿,抱歉带我走了这么久......我有另一个解决方案,但是我再也不是Jquery的大师了,所以可能有更好的办法这个。事实上,我很确定。 (如果需要纠正,请调用更好的Jquery dudes来纠正代码:)

无论如何,这里有一个新的FIDDLE