js实现表格中不同单元格内容的替换(不同浏览器的节点属性兼容问题)
-------> 
效果:点击右下角单元格,左下角单元格内容被替换成和左上角相同,如上图所示。
实现方式:分别获取各个节点,并将左边节点的内容修改成左上方节点的内容。
代码:

注意的地方:
如果html部分写成如下格式,则无法得到目标的效果。

为了说明这个问题的原因,可以通过获取第一个tr的第一个子节点的类型来说明。
获取第一个tr的第一个子节点类型:
var n = document.getElementsByTagName('tr')[0].firstChild.nodeName;
alert(n);

可以看出,第一个tr的第一个子节点类型是文本类型。
修改html代码结构如下(tr和td标签之间留出若干空格)。

测试此处tr的第一个子节点类型结果如下:

依然是文本类型。
去掉tr和td之间的空格再测试则得到如下结果:

由上面的分析可以得出结论,浏览器对标签之间的空格(空白节点)是敏感的。
节点之间的空白符,在firefox、chrome、opera、safari浏览器是文本节点,而在IE(IE<9)版本中是忽略空白节点的。
为了做到各个浏览器的兼容,有以下两中方法:
第一种方法是改变源码的书写格式
<div id="div" ><divid="div01">这是div01</div ><divid="div02">这是div02</div ></div>
经测试,所有alert的值都是2。但是这种写法看起来很别扭,并且写起来也很麻烦。要是很多很多的代码标签也不易于维护。
第二种方法是在调用childNodes属性之前先将空格删除。下面是一个删除空格的方法:
//如果是文本节点,并且值为空,则删除该节点。
for(vari = 0; i < node.length; i++) {
if(node[i].nodeType == 3 && /\s/.test(node[i].nodeValue)){
node[i].parentNode.removeChild(node[i]);
}}
alert(node.length);
这样也能达到同样的效果,而且html代码格式也不需要改变。
参考:不同浏览器中childNodes获取子节点个数 http://group.zcool.com.cn/post/ZOTE5NjQ0.html
js实现表格中不同单元格内容的替换(不同浏览器的节点属性兼容问题)的更多相关文章
- EXCEL中统计单元格内容出现次数
参考网站: https://jingyan.baidu.com/article/7c6fb428dfcc9580642c90ae.html 统计单元格内容出现次数是工作中经常会涉及到的问题. 那么,如 ...
- JS遍历Table的所有单元格内容
用JS去遍历Table的所有单元格中的内容,可以用如下JS代码实现: 这个方法的参数是唯一标识Table的id,用document对象的获取. function GetInfoFromTable(ta ...
- 使用js合并table中的单元格
用primefaces做的报表,领导要求合并相同内容的单元格,但是primefaces没有找到可以合并单元格的组件,想来想去,只有页面加载后用js合并了. http://blog.csdn.net/d ...
- 帆软报表(finereport)JS实现cpt中详细单元格刷新
1.刷新固定单元格 setInterval(function(){ //获取第二行第 5 列 E2 单元格对象 var _changeCell = $("tr[tridx=1]" ...
- Bootstrap3基础 table-condensed 表格中的单元格紧凑一些
内容 参数 OS Windows 10 x64 browser Firefox 65.0.2 framework Bootstrap 3.3.7 editor ...
- js如何实现动态显示表格数据(点奇数显示奇数单元格内容)
js如何实现动态显示表格数据(点奇数显示奇数单元格内容) 一.总结 一句话总结: 1.动态指定表格中每个单元格的id,然后通过id可以获取每个单元格,然后对里面的innerHTML进行赋值. 2.弄了 ...
- 【表格设置】HTML中合并单元格,对列组合应用样式,适应各浏览器的内容换行
1.常用表格标签 普通 <table> | <tr> | | <th ...
- JS动态生成表格后 合并单元格
JS动态生成表格后 合并单元格 最近做项目碰到表格中的单元格合并的问题,需求是这样的,首先发ajax请求 请求回来后的数据 动态生成表格数据,但是生成后如果编号或者(根据其他的内容)有相同时,要合并单 ...
- Excel单元格内容太多会覆盖遮住下一单元格范围
Excel单元格内容太多会覆盖遮住下一单元格范围分步阅读 Excel中的单元格内容,有着不同的对齐方式.用户可根据自己的需求,在处理数据的时候,自行设置所需要的对齐方式. 当您在处理数据的时候,如果设 ...
随机推荐
- LightOJ1422 Halloween Costumes(区间DP)
题目大概是依次有n场派对,每场派对都有需要穿某套衣服去参加,可以同时穿多套衣服,就是一套套着一套,如果脱了的话就不能再穿上那套了,问最少需要几套衣服去参加完所有派对. 区间DP: dp[i][j]第i ...
- NOI2010 : 超级钢琴
求出前缀和 对于每个结尾i,设现在取的区间是[j+1,i],则i-R<=j<=i-L,取出该区间sum[j]的最小值,将sum[i]-sum[j]放入堆中 建立一个大根堆,每次取出堆顶元素 ...
- 【原】storm源码之storm代码结构【译】
说明:本文翻译自Storm在GitHub上的官方Wiki中提供的Storm代码结构描述一节Structure of the codebase,希望对正在基于Storm进行源码级学习和研究的朋友有所帮助 ...
- HTML的快速写法:Emmet和Haml
HTML代码写起来很费事,因为它的标签多. 一种解决方法是采用模板, 在别人写好的骨架内,填入自己的内容.还有一种就是我今天想要介绍的方法—-简写法. 常用的简写法,目前主要是Emmet和Haml两种 ...
- 推荐一个非常COOL的开源相册程序!
不知道大家有没想过有一个完全属于自己的网络相册?现在网上的相册程序已可以说多不胜数,那么到底要使用哪个会比较好呢? 之前我也在为此事烦恼过,在网上找了很多个程序试了,但都没达到我的要求,后来发终于功夫 ...
- 【BZOJ】1251: 序列终结者(splay)
http://www.lydsy.com/JudgeOnline/problem.php?id=1251 不行..为什么写个splay老是犯逗,这次又是null的mx没有赋值-maxlongint.. ...
- COJ 删除数字
试题描述 输入正整数N和M,在N中删除掉M位,能留下的最大整数是多少? 输入 正整数N和M 输出 留下的最大整数 输入示例 233390323 5 输出示例 9323 其他说明 1<=N< ...
- Android jni开发资料--NDK环境搭建
谷歌改良了ndk的开发流程,对于Windows环境下NDK的开发,如果使用的NDK是r7之前的版本,必须要安装Cygwin才能使用NDK.而在NDKr7开始,Google的Windows版的NDK ...
- RN组件之ToolbarAndroid
一.ToolbarAndroid 1.该组件封装了Android平台中的ToolBar组件(只适用于Android平台).一个ToolBar组件可以显示一个Logo图标 以及一些导航图片(例如:菜单功 ...
- 不要在init和dealloc函数中使用accessor
不要在init和dealloc函数中使用accessor 文章目录 Objective-C 2.0 增加了 dot syntax,用于简单地调用成员变量的 accessor.相当于 java 的 ge ...