更新時間:2018年07月12日 11:26:13 作者:CrazyDream5218
這篇文章主要介紹了js與jQuery實現(xiàn)獲取table中的數(shù)據(jù)并拼成json字符串操作,涉及javascript與jQuery針對HTML頁面table表格數(shù)據(jù)獲取、遍歷及json字符串拼接相關(guān)操作技巧,需要的朋友可以參考下
本文實例講述了js與jQuery實現(xiàn)獲取table中的數(shù)據(jù)并拼成json字符串操作。分享給大家供大家參考,具體如下:
核心代碼如下:
JavaScript代碼:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function tabToJSON(id) {
var trs = document.getElementById(id).getElementsByTagName("tr");//獲得tr數(shù)組
var titles = trs[0].getElementsByTagName("td"); //獲得表頭td數(shù)組
var json = "";
for(var i = 1; i < trs.length; i++) {
var tds = trs[i].getElementsByTagName("td");
json += "{";
//拼裝json
for(var j = 0; j < tds.length; j++)
json += titles[j].innerHTML + ":" + tds[j].innerHTML + ",";
json = json.substring(0, json.length - 1) + "},";
}
json = "[" + json.substring(0, json.length - 1) + "]";
document.getElementById("test").innerHTML = json;
}
jQuery代碼:
1
2
3
4
5
6
7
8
9
10
function tabToJSONForJquery(id) {
var titles = $("#" + id).find("tr:first td"); //獲得表頭td數(shù)組
//遍歷非表頭的,tr、td...拼裝json
var json = "[" + $("#" + id).find("tr:not(:first)").map(function(i, e) {
return "{" + $(e).children("td").map(function(j, el) {
return $(titles[j]).html() + ":" + $(el).html();
}).get().join(",") + "}";
}).get().join(",") + "]";
$("#test").html(json);
}
注:為便于測試,建議jQuery直接使用cdn如:
1
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
測試HTML部分(table表格與json數(shù)據(jù)顯示部分):
1
2
3
4
5
6
7
8
9
<table id="tbl" border="1">
<tr><td>編號</td><td>年齡</td><td>單元</td><td>房間號</td></tr>
<tr><td>1</td><td>25</td><td>1</td><td>1-2</td></tr>
<tr><td>2</td><td>22</td><td>1</td><td>1-1</td></tr>
<tr><td>3</td><td>21</td><td>3</td><td>3-3</td></tr>
<tr><td>4</td><td>20</td><td>2</td><td>2-2</td></tr>
<tr><td>5</td><td>35</td><td>4</td><td>4-2</td></tr>
</table>
<div id="test"></div>
使用在線HTML/CSS/JavaScript代碼運行工具:
http://tools.jb51.net/code/HtmlJsRun測試得到j(luò)son數(shù)據(jù)為:
[{編號:1,年齡:25,單元:1,房間號:1-2},{編號:2,年齡:22,單元:1,房間號:1-1},{編號:3,年齡:21,單元:3,房間號:3-3},{編號:4,年齡:20,單元:2,房間號:2-2},{編號:5,年齡:35,單元:4,房間號:4-2}]