请问如何把下面这个表格的内容用 js/jquery 拼成json对象??

表格:
<body>
<table border="1px">
<tr> <td>姓名</td> <td>年龄</td> </tr>
<tr> <td><span name="name">张三</span></td> <td><span name="age">30</span></td> </tr>
<tr> <td><span name="name">李四</span></td> <td><span name="age">40</span></td> </tr>
</table>
</body>

希望得到这样的json字符串:
[{"name":"张三","age":"30"},{"name":"李四","age":"40"}]

请问如何用 js/jquery 得到数据并拼装成希望的json字符串?

//首先,找到每一行 除了第一行的名称
var trs = $("table tr:not(:first)");
//声明一个盒子
var array= [];
//循环你所要选择的行
$.each(trs,function(i,val){
    var tr = val;
    var json = {name:"",age:0}
    json.name=$(tr).find("[name='name']").text()
    json.age=$(tr).find("[name='age']").text()
    //全加入
    array.push(json);
});

追问

这个table有个id,请问怎么根据这个id得到trs?

追答var trs=$("#你的id名称  tr:not(:first)");

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-12-13
var table = document.getElementsByTagName('table')[0];
var trs = table.getElementsByTagName('tr');
var arr = [];

// i = 1 表示不遍历首个tr;因为是表头
for(var i = 1,len = trs.length; i < len; i++) {

    // 查找tr下的td
    var tds = trs[i].getElementsByTagName('td');
    var childArr = {};

    // 循环处理td
    for(var k = 0; k < tds.length; k ++) {

        // 查找td下的span
        var span = tds[k].getElementsByTagName('span')[0];

        // 获得span的name
        var name = span.getAttribute('name');

        // 获得span的内容并写入arr
        childArr[name] = span.textContent;
    }
    arr.push(childArr);
}

// 如果只是达成这种格式,那么现在就OK了,已经是这样的格式
// [{"name":"张三","age":"30"},{"name":"李四","age":"40"}]
// 如果要转换成JSON对象,请加下面这句代码
var jsonArr = JSON.stringify(arr);

追问

太感谢您了!完美的解决了我的问题,为你点赞!我记得可以选好几个答案的怎么不行了呢

本回答被网友采纳
第2个回答  2016-12-13
<script type="text/javascript">
var tableTr = [];
    for(var i=1;i<$('table tr').length;i++){
    var td = $('table tr').eq(i).find("td");
    tableTr[i] = {name:td.eq(0).find("span").text(),age:td.eq(1).find("span").text()};
}
console.log(JSON.stringify(tableTr))
</script>