为了账号安全,请及时绑定邮箱和手机立即绑定

关于js操作HTML的疑惑

关于js操作HTML的疑惑

繁星淼淼 2018-12-07 07:34:20
一直有个疑惑存在心里,js操作html中的元素的原理是怎样的,打个比方,一个div中有一个四行四列的table,现要替换第二列和第四列的数据,我的理解后台语言操作html时,无论是以何种方式,应该都是将这个div读到内存中保存成字符串,然后进行字符串替换,将最终的字符串返回,那在前台通过js操作呢? 现假定已有八个现成的数据,只需js替换到table中 问题: 1.js也是将整个html页面读成字符串(如果是,从哪读?内存?浏览器缓存?还是硬盘上的缓存区?或是其他的?),然后进行字符串的拼接替换吗? 2.①用js找到相应的td标签(有八个也就是一半的单元格需要赋值),然后将其值赋为给定的数据; ②直接在js文件中全新拼接整个table对应的字符串,给定的数据也一起拼接进去,然后将其整体赋给div的innerHTML; 这两种方式哪种更优(效率和内存损耗等方面)? 3.能给我讲讲js操作html的原理就更好了(和问题相关的帖子的链接地址也可); 希望各位大牛多多指点解惑,小子感激不敬!
查看完整描述

5 回答

?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

我是这么理解的:

浏览器在构造页面的时候,本身就是需要对html进行解析,构造出来一个所谓的DOM树,这是内存中的一个数据结构。这也就是为什么我们打开一个网页需要占用一些内容的原因。

浏览器都有一个javascript引擎,这个引擎可以对之前构造出来的DOM树进行访问或者修改。这个是很自然的。到了javascript这个级别,已经不再有html的概念,它是面对一个一个的对象(在DOM树上,我们称为节点)进行操作。

查看完整回答
反对 回复 2018-12-24
?
墨色风雨

TA贡献1853条经验 获得超6个赞

我遇到过这样一种情况,就是对一个div中的蛮多不同标签里的数据做动态实时更新(暂假定每100毫秒更新一次,如果只更新一次或几次可能性能上不会有太大区别),如果每次都精确的找到对应的标签,然后赋值,感觉蛮麻烦,而且就如上面的table,并不是每个单元格都要更新,而且还可能有其他非table标签,感觉查找起来比较麻烦,还不如一次全部替换掉来得直接,但就是不清楚优缺点怎样?

查看完整回答
反对 回复 2018-12-24
  • 5 回答
  • 0 关注
  • 535 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号