这样逻辑就正常了(和我在加分项里说的一致),一开始我以为是传递死数据。
其实不需要输入。 对于html结构优化,在每个td中放入input会减少页面大小,并且设置input的css样式,所以设置td属性为contenteditable="true" //H5 new
您可以根据其中的答案实现最小的更改。 (但是如果考虑兼容性的话还是要输入)
以下是原答案
既然是面试题,那么重点一定是想法而不是具体,而想法是否清晰是你技能掌握程度的体现
对我来说,满足题目要求的步骤如下(顺便逆向分析一波测试点):
1、确定要求,需要通过表格中的内容(测试点1,明确要求)
2、封装表格的内容,因为我们现在听到的内容是三维的,所以需要扁平化,封装成程序可以识别的数据。 这就涉及到数据结构的设计(测试点2,数据结构设计)
3、如何取出内容并封装,这里无非是遍历表tbody的tr和td,这就是对dom的操作(测试点3javascript 提交数据,dom操作)
4、根据后台处理数据的需要(贴合实际),以什么形式传输到后台(测试点4,后台与学生交流)
以下几点可以作为与面试官沟通的延伸,是加分项,也表明你重视互动:
询问书面测试人员为什么要从表中读取数据,了解真正的需求而不是操作需求,这样更容易理解这样做的意义。
从个人经验来看,这个需求的目的通常是与用户交互绑定的,所以在实际业务中,数据应该在td中显示为输入,方便用户更改。 如果数据是自己提供的,用户无法更改javascript 提交数据,那么将这些数据传回后台是没有意义的,因为它是“死数据”。
数据结构建议如下。 tr代表一条记录,对应链表中的一个元素,以便后台接收到后可以方便的存入数据库。
var data = [{
name:'x1',
yuwen: 75,
math: 66
},{
name:'x1',
yuwen: 75,
math: 66
}]
然后发送请求时,表征其JSON.stringify(data)
发表评论