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

表格:<body><tableborder="1px"><tr><td>姓名</td><td>年龄</td></tr><tr><td><spanname="name">张... 表格:
<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字符串?
展开
 我来答
heshibo111
推荐于2017-11-23 · TA获得超过131个赞
知道小有建树答主
回答量:117
采纳率:100%
帮助的人:39.9万
展开全部
//首先,找到每一行 除了第一行的名称
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)");
百度网友6a957b7
2016-12-13 · TA获得超过1124个赞
知道小有建树答主
回答量:513
采纳率:0%
帮助的人:349万
展开全部
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);
追问
太感谢您了!完美的解决了我的问题,为你点赞!我记得可以选好几个答案的怎么不行了呢
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友25e328c51f
2016-12-13 · 超过51用户采纳过TA的回答
知道小有建树答主
回答量:112
采纳率:92%
帮助的人:65.7万
展开全部
<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>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式