table数据

<div id="tableDiv" style="overflow-x: scroll">
<table class="table table-hover static-table my-table">
<thead>
<tr>
<th>行业</th> <th>9月10日</th> <th>9月11日</th> <th>9月12日</th> <th>9月13日</th> <th>9月14日</th> <th>9月15日</th> <th>9月16日</th> <th>9月17日</th> <th>9月18日</th> <th>9月19日</th> <th>9月20日</th> <th>9月21日</th> <th>9月22日</th> <th>9月23日</th> <th>9月24日</th> </tr>
</thead>
<tbody>
<tr>
<td>服装</td> <td>2.15</td> <td>1.0</td> <td>1.0</td> <td>1.0</td> <td>1.0</td> <td>1.0</td> <td>1.0</td> <td>1.0</td> <td><input serviceitemid="5000000000012" day="Mon Sep 18 00:00:00 CST 2017" type="text" size="2" value="1.0"></td> <td><input serviceitemid="5000000000012" day="Tue Sep 19 00:00:00 CST 2017" type="text" size="2" value="1.0"></td> <td><input serviceitemid="5000000000012" day="Wed Sep 20 00:00:00 CST 2017" type="text" size="2" value="1.0"></td> <td><input serviceitemid="5000000000012" day="Thu Sep 21 00:00:00 CST 2017" type="text" size="2" value="1.0"></td> <td><input serviceitemid="5000000000012" day="Fri Sep 22 00:00:00 CST 2017" type="text" size="2" value="1.0"></td> <td><input serviceitemid="5000000000012" day="Sat Sep 23 00:00:00 CST 2017" type="text" size="2" value="1.0"></td> <td><input serviceitemid="5000000000012" day="Sun Sep 24 00:00:00 CST 2017" type="text" size="2" value="1.0"></td> </tr>
<tr>
<td>服装</td> <td>2.15</td> <td>1.0</td> <td>1.0</td> <td>1.0</td> <td>1.0</td> <td>1.0</td> <td>1.0</td> <td>1.0</td> <td><input serviceitemid="5000000000012" day="Mon Sep 18 00:00:00 CST 2017" type="text" size="2" value="1.0"></td> <td><input serviceitemid="5000000000012" day="Tue Sep 19 00:00:00 CST 2017" type="text" size="2" value="1.0"></td> <td><input serviceitemid="5000000000012" day="Wed Sep 20 00:00:00 CST 2017" type="text" size="2" value="1.0"></td> <td><input serviceitemid="5000000000012" day="Thu Sep 21 00:00:00 CST 2017" type="text" size="2" value="1.0"></td> <td><input serviceitemid="5000000000012" day="Fri Sep 22 00:00:00 CST 2017" type="text" size="2" value="1.0"></td> <td><input serviceitemid="5000000000012" day="Sat Sep 23 00:00:00 CST 2017" type="text" size="2" value="1.0"></td> <td><input serviceitemid="5000000000012" day="Sun Sep 24 00:00:00 CST 2017" type="text" size="2" value="1.0"></td> </tr> </tbody>
</table>
</div>

方式一:

直接遍历table提取数据:

 function getTableData(){
var tableData = [];
//要求给table的class属性添加'my-table'
var tableTrArr = $('.my-table').find('tbody').find('tr');
for ( var i = 0; i < tableTrArr.size(); i++ ) { // tr
tableData[i] = [];
var tableTdArr = $('.my-table').find('tbody').find('tr').eq(i).find('td');
for ( var j = 0; j < tableTdArr.size(); j++ ) { //td
if (tableTdArr.eq(j).find('input').size()) {
tableData[i].push(tableTdArr.eq(j).find('input').val());
} else {
tableData[i].push(tableTdArr.eq(j).html());
}
}
} //tableData为二维数组,包含table中的所有数据 }

方式二:

页面上有个table,table里面的数据要通过RPC获取到的json格式的数据来渲染,table中有的td没有数据,没有数据的td中放input输入框,并带入默认数据

意味着td中的数据有可能有改动

提交保存时,提交到后台的数据已RPC相同的格式提交

var tableData;//全局变量

查询数据:

 var function queryData() {
$.ajax({
url: "/data/getRatio.json",
dataType: "json",
type: "POST",
data: {
"opCode":xxxxxxx,
"dateRange":2017-09-10/2017-09-25
},
success: function (result) {
if (result.hasError == true) {
alert("操作失败");
return;
}
if (!result.content || result.content.isSuccess == false) {
alert("操作失败");
} else {
showData(result.content.data); }
}
});
};

显示方法:

 function showData(data){
tableData = data;
var $table = $('<table></table>');
var $tbody = $('<tbody></tbody>');
$table.append($tbody);
for (var trdata in tableData ) {
var $tr = $('<tr></tr>');
$tbody.append($tr);
// tr
for (var j = 0; j < trdata.length; i++) {
// td
var $td = $('<td></td>');
$tr.append($td);
if(trdata[j]){//trdata[j]有值把值填入td
$td.html(trdata[j]);
}else{//trdata[j]没有值,生成input输入框填入td
var $input = $('<input type="text">');
$td.append($input);
$input.val(trdata[j]);
//给输入框添加事件监听,input的改动会作用到tableData对象
$td.find('input').on('change', function() {
trdata[j] = $(this).val();
})
}
}
}
$('#tablediv').append($table);
}

页面提交后,要把table中改动过的数据提交到后台保存

按照以上的方式渲染数据并填加input的事件监听,input里面改动的数据会通过引用自动生效到tabelData,提交保存的时候,直接拿tableData提交到后台就可以了

tableData的格式会和RPC :/data/getRatio.json返回的数据格式一致

javascript中的数据渲染与提取的更多相关文章

  1. JavaScript中的数据类型转换

    本文中提到的“原始值”指的是undefined,null,Boolean,string和number. 本文中的对象是native对象,宿主对象(浏览器定义的对象)按照各自的算法转换. JavaScr ...

  2. javascript中 json数据的解析与序列化

    首先明确一下概念: json格式数据本质上就是字符串: js对象:JavaScript 中的几乎所有事务都是对象:字符串.数字.数组.日期.函数,等等. json数据的解析: 就是把后端传来的json ...

  3. javascript中对数据文本格式化的思考

    在实际应用场景中,我们常常需将一些数据输出成更加符合人类习惯阅读的格式. 保留小数点后面两位 在一些要求精度没有那么准确的场景下,我们可以直接通过Number.prototype.toFixed()来 ...

  4. 浅谈 JavaScript 中常用数据及其类型转换

    在 JavaScript 中有一些 value 会经常碰到: [] (空数组).{} (空对象).'' (空字符串).undefined.null.0.NaN.Infinite 也会经常碰到数据类型转 ...

  5. 关于Javascript中通过实例对象修改原型对象属性值的问题

    Javascript中的数据值有两大类:基本类型的数据值和引用类型的数据值. 基本类型的数据值有5种:null.undefined.number.boolean和string. 引用类型的数据值往大的 ...

  6. 【译】Javascript中的数据类型

    这篇文章通过四种方式获取Javascript中的数据类型:通过隐藏的内置[[Class]]属性:通过typeof运算符:通过instanceof运算符:通过函数Array.isArray().我们也会 ...

  7. javascript中的数据结构

    Javascript中的关键字   abstract     continue      finally      instanceof      private       this boolean ...

  8. 2:JavaScript中的基本运算

    今天说的是JavaScript中的数据基本运算 在上一节中已经说了关于JavaScript中的基本数据类型 那么数据有了 剩下来就是数据之间的运算 表达式-------预算符(赋值 比较 算数 逻辑 ...

  9. Javascript模板及其中的数据逻辑分离思想(MVC)

    #Javascript模板及其中的数据逻辑分离思想 ##需求描述 项目数据库的题目表描述了70-120道题目,并且是会变化的,要根据数据库中的数据描述,比如,选择还是填空题,是不是重点题,题目总分是多 ...

随机推荐

  1. [windows菜鸟]Windows API函数大全(完整)

    Windows API函数大全,从事软件开发的朋友可以参考下 1. API之网络函数 WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一 ...

  2. AMBARI部署HADOOP集群(3)

    1. 安装ambari-server yum -y install ambari-server 2. ambari server 需要一个数据库存储元数据,默认使用的 Postgres 数据库.默认的 ...

  3. split 使用

    split作用:把字符串变成列表,这个字符串必须是多行文字.如果是单行文字或一个单词是不行的,实例操作如下: In [46]: output=subprocess.check_output(['df' ...

  4. Winform非UI线程更新UI界面的各种方法小结

    我们知道只有UI线程才能更新UI界面,其他线程访问UI控件被认为是非法的.但是我们在进行异步操作时,经常需要将异步执行的进度报告给用户,让用户知道任务的进度,不至于让用户误认为程序“死掉了”,特别是对 ...

  5. python-Web-django-短信登陆

    until: import json, urllib from urllib.parse import urlencode # 发送短信 def request2(mobile,num, m=&quo ...

  6. 【HANA系列】SAP HANA SQL获取字符串长度

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA SQL获取字符 ...

  7. 【HANA系列】SAP HANA SLT 在表中隐藏字段并传入HANA的方法

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA SLT在表中隐 ...

  8. 积累-T

    emmm,各种知识点都有吧,主要方便自己记 随机修改网页图标 <script> var image=new Array(3); image.length=3; image[1]=" ...

  9. Linux进程信号

    信号 名称 描述 1 HUP 挂起 2 INT 中断 3 QUIT 结束运行 9 KILL 无条件终止 11 SEGV 段错误 15 TERM 尽可能终止 17 STOP 无条件停止运行,但不终止 1 ...

  10. 关于Pytorch中accuracy和loss的计算

    这几天关于accuracy和loss的计算有一些疑惑,原来是自己还没有弄清楚. 给出实例 def train(train_loader, model, criteon, optimizer, epoc ...