Jquery 从表中填充json对象
我有这张桌子Jquery 从表中填充json对象,jquery,json,loops,Jquery,Json,Loops,我有这张桌子 <table> <tr> <th>name</th> <th>address</th> <th>city</th> </tr> <tr> <td data-attr="name">amy</td> <td data-attr="address">123 El
<table>
<tr>
<th>name</th>
<th>address</th>
<th>city</th>
</tr>
<tr>
<td data-attr="name">amy</td>
<td data-attr="address">123 El St.</td>
<td data-attr="city">Rossberg</td>
</tr>
<tr>
<td data-attr="name">john</td>
<td data-attr="address">232 Rosary Rd.</td>
<td data-attr="city">Newberg</td>
</tr>
使用jQueryV1.8.3执行此操作的正确方法是什么
另外,我明天将能够查看答案并接受用作解决方案的内容。谢谢有一个jQuery插件可以将HTML表序列化为javascript对象 您只需使用jQuery选择表并调用插件:
var table=$('#table id').tableToJSON() 有一个jQuery插件可以将HTML表序列化为javascript对象 您只需使用jQuery选择表并调用插件: var table=$('#table id').tableToJSON() 下面是一个例子:
$(文档).ready(函数(){
var数据=[];
var table=$('table');//如果使用id可能更好
表.find('tr')。每个函数(i){
如果(i!=0){//忽略标头
var$tds=$(this.find('td'),
name=$tds.eq(0).text(),
地址=$tds.eq(1).text(),
城市=$tds.eq(2.text();
数据推送({“name”:name,“address”:address,“city”:city});
}
});
var jsonPeople=JSON.stringify(数据);
警惕(jsonPeople);
});代码>
名称
地址
城市
艾米
埃尔街123号。
罗斯贝里
厕所
罗萨里路232号。
纽伯格
以下是一个示例:
$(文档).ready(函数(){
var数据=[];
var table=$('table');//如果使用id可能更好
表.find('tr')。每个函数(i){
如果(i!=0){//忽略标头
var$tds=$(this.find('td'),
name=$tds.eq(0).text(),
地址=$tds.eq(1).text(),
城市=$tds.eq(2.text();
数据推送({“name”:name,“address”:address,“city”:city});
}
});
var jsonPeople=JSON.stringify(数据);
警惕(jsonPeople);
});代码>
名称
地址
城市
艾米
埃尔街123号。
罗斯贝里
厕所
罗萨里路232号。
纽伯格
给你
var counter = 1;
var mainArray = [];
var subArray = new Object();
$('.toJson').each(function(){
var col = $(this);
subArray[col.data('attr')] = col.html();
if(counter == 3)
{
mainArray.push(subArray);
subArray = new Object();
counter = 0;
}
counter++;
});
alert(JSON.stringify(mainArray));
给你
var counter = 1;
var mainArray = [];
var subArray = new Object();
$('.toJson').each(function(){
var col = $(this);
subArray[col.data('attr')] = col.html();
if(counter == 3)
{
mainArray.push(subArray);
subArray = new Object();
counter = 0;
}
counter++;
});
alert(JSON.stringify(mainArray));
解决方案是创建一个数组,迭代表中的每一行,创建一个对象,迭代每个单元格,将数据属性和文本存储到创建的对象中,并最终将该对象推送到数组中
var mainArray = [];
$('table tr').each(function () {
var $tds = $(this).find("td");
var len = $tds.length;
if (len) {
var tempObj = {};
for (var i = 0; i < len; i++) {
var $td = $tds.eq(i);
temp[$td.data("attr")] = $td.text();
}
mainArray.push(temp);
tempObj = {};
}
});
alert(JSON.stringify(mainArray));
var mainArray=[];
$('table tr')。每个(函数(){
var$tds=$(this.find(“td”);
var len=$tds.length;
如果(len){
var tempObj={};
对于(变量i=0;i
解决方案是创建一个数组,迭代表中的每一行,创建一个对象,迭代每个单元格,将数据属性和文本存储到创建的对象中,并最终将该对象推送到数组中
var mainArray = [];
$('table tr').each(function () {
var $tds = $(this).find("td");
var len = $tds.length;
if (len) {
var tempObj = {};
for (var i = 0; i < len; i++) {
var $td = $tds.eq(i);
temp[$td.data("attr")] = $td.text();
}
mainArray.push(temp);
tempObj = {};
}
});
alert(JSON.stringify(mainArray));
var mainArray=[];
$('table tr')。每个(函数(){
var$tds=$(this.find(“td”);
var len=$tds.length;
如果(len){
var tempObj={};
对于(变量i=0;i
这个问题几乎为您提供了所需的一切:这个问题几乎为您提供了所需的一切:需要在不使用jQuery之外的任何插件或外部库的情况下执行此操作,尽管这对未来来说是个好消息需要在不使用jQuery之外的任何插件或外部库的情况下执行此操作这是很好的未来知道