JQ table 資料 轉 json
阿新 • • 發佈:2018-12-20
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript" src="js/jquery.min.js" ></script> </head> <body> <table id='table'> <thead> <tr> <th cc="gid">第一列</th> <th cc="code">第二列</th> <th cc="name">第三列</th> <th cc="sex">性別</th> </tr> </thead> <tbody> <tr> <td><input type="text" cc value="gid1"></td> <td><input type="text" cc value="code1"></td> <td><input type="text" cc value="name1"></td> <td><input type="radio" rc name="sex1" checked value="1">男<input name="sex1" type="radio" value="0">女</td> </tr> <tr> <td><input type="text" cc value=""></td> <td><input type="text" cc value=""></td> <td><input type="text" cc value=""></td> <td><input type="radio" rc name="sex2" checked value="1">男<input name="sex2" type="radio" value="0">女</td> </tr> <tr> <td><input type="text" cc value="gid3"></td> <td><input type="text" cc value="code3"></td> <td><input type="text" cc value="name3"></td> <td><input type="radio" rc name="sex3" checked value="1">男<input name="sex3" type="radio" value="0">女</td> </tr> <tr> <td><input type="text" cc value="gid4"></td> <td><input type="text" cc value="code4"></td> <td><input type="text" cc value="name4"></td> <td><input type="radio" rc name="sex4" checked value="1">男<input name="sex4" type="radio" value="0">女</td> </tr> </tbody> </table> <button onclick="test()">TEST</button> <script> /* * tableid: table 的 id * data_attr : 要獲取文字框加的 屬性名,th 下,表示key 值 * radio_attr : 要獲取 單選按鈕 加的屬性名 ,沒有單選按鈕可以隨便填寫 * radio_name : 單選按鈕 的 name 值 */ function tableToJSON(tableid,data_attr,radio_attr,radio_name){ var jsondata=[]; var jsonkey=[]; $("#"+tableid+" thead tr th").each(function(i,obj){ jsonkey.push($("#table thead tr th").eq(i).attr(data_attr)); }); $("#"+tableid+" tbody tr").each(function(i,obj){ var objectdata = {}; $(obj).find("td").each(function(i2,obj2){ if($(obj2).find("["+data_attr+"]").length!=0){ objectdata[jsonkey[i2]]=$(obj2).find("["+data_attr+"]").val(); }else if($(obj2).find("["+radio_attr+"]").length!=0){ objectdata[jsonkey[i2]]=$("input[name='"+radio_name+""+(i+1)+"']:checked").val(); } }); jsondata.push(objectdata); }); console.log(JSON.stringify(jsondata)); return JSON.stringify(jsondata); } function test(){ alert(tableToJSON("table","cc","rc","sex")); } </script> </body> </html>