请问如何把下面这个表格的内容用 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字符串? 展开
<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字符串? 展开
3个回答
展开全部
//首先,找到每一行 除了第一行的名称
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)");
展开全部
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);
追问
太感谢您了!完美的解决了我的问题,为你点赞!我记得可以选好几个答案的怎么不行了呢
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<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>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询