使用JS操作页面表格,元素的一些技巧


Posted in Javascript onFebruary 02, 2007

(一)
ie 、firefox以及其它浏览器对于 table 标签的操作都各不相同,在ie中不允许对table和tr的innerHTML赋值,使用js增加一个tr时,使用appendChile方法也不管用。下面是我就三种浏览器测试的结果: 

insertRow

IE6 :支持,而且默认参数为-1,默认添加到最后

FireFox :支持,但部支持默认参数

Opera :支持,支持默认参数,默认添加到最前

AppendChild

IE6 :不支持

FireFox :支持,但增加TR后不影响ROWS

Opera :支持,效果同insertRow(-1),影响ROWS 

最大限度的遵循规范,就能写出安全的、适用性强的代码了: 

//向table追加一个空行:
var otr = otable.insertRow(-1);
var otd = document.createElement("td");
otd.innerHTML = " "; 
otd.className = "XXXX"; 
otr.appendChild(otd); 

这样就可以运行在这三种浏览器上了
(三)childNodes的操作
(1)属性nodeName
Utils.getChildrenByTagName = function (node, tagName) {
    var ln = node.childNodes.length;
    var arr = [];
    for (var z = 0; z < ln; z++) {
        if (node.childNodes[z].nodeName == tagName) {
            arr.push(node.childNodes[z]);
        }
    }
    return arr;
};
(2)属性id
function getNodeID(parent, id) {
    var ln = parent.childNodes.length;
    for (var z = 0; z < ln; z++) {
        if (parent.childNodes[z].id == id) {
            return parent.childNodes[z];
        }
    }
    return null;
}
(3)属性className
对应class,如 <tr class="class1">
 function getElementsByClassName(node, className) {
    var children = node.getElementsByTagName("*");
    var elements = new Array();
    for (var i = 0; i < children.length; i++) {
        var child = children[i];
        var classNames = child.className.split(" ");
        for (var j = 0; j < classNames.length; j++) {
            if (classNames[j] == className) {
                elements.push(child);
                break;
            }
        }
    }
    return elements;
}

Javascript 相关文章推荐
javascript html 静态页面传参数
Apr 10 Javascript
javascript addBookmark 加入收藏 多浏览器兼容
Aug 15 Javascript
EXTjs4.0的store的findRecord的BUG演示代码
Jun 08 Javascript
Javascript中的关键字和保留字整理
Oct 16 Javascript
JQuery实现可直接编辑的表格
Apr 16 Javascript
javascript如何操作HTML下拉列表标签
Aug 20 Javascript
简单模拟node.js中require的加载机制
Oct 27 Javascript
微信小程序-详解数据缓存
Nov 24 Javascript
JS抛物线动画实例制作
Feb 24 Javascript
vue 注册组件的使用详解
May 05 Javascript
vue项目打包上传github并制作预览链接(pages)
Apr 19 Javascript
Js跳出两级循环方法代码实例
Sep 22 Javascript
JavaScript使用cookie
Feb 02 #Javascript
如何判断图片地址是否失效
Feb 02 #Javascript
Javascript的IE和Firefox兼容性汇编(zz)
Feb 02 #Javascript
JavaScript 学习 - 提高篇
Feb 02 #Javascript
关于实现代码语法标亮 dp.SyntaxHighlighter
Feb 02 #Javascript
How to Auto Include a Javascript File
Feb 02 #Javascript
Code:loadScript( )加载js的功能函数
Feb 02 #Javascript
You might like
php遍历删除整个目录及文件的方法
2015/03/13 PHP
PHP序列化的四种实现方法与横向对比
2018/11/29 PHP
javascrip关于继承的小例子
2013/05/10 Javascript
js数值和和字符串进行转换时可以对不同进制进行操作
2014/03/05 Javascript
JavaScript中判断页面关闭、页面刷新的实现代码
2014/08/27 Javascript
使用js dom和jquery分别实现简单增删改
2014/09/11 Javascript
AngularJS语法详解(续)
2015/01/23 Javascript
jquery实现网页定位导航
2016/08/23 Javascript
js实现可旋转的立方体模型
2016/10/16 Javascript
vue实现app页面切换动画效果实例
2017/05/23 Javascript
Vue中的字符串模板的使用
2018/05/17 Javascript
详解Angularjs 自定义指令中的数据绑定
2018/07/19 Javascript
javascript实现对话框功能警告(alert 消息对话框)确认(confirm 消息对话框)
2019/05/07 Javascript
使用p5.js临摹动态图形
2019/10/23 Javascript
Element MessageBox弹框的具体使用
2020/07/27 Javascript
vue3.0+vue-router+element-plus初实践
2020/12/02 Vue.js
[04:48]DOTA2上海特锦赛小组赛第三日 TOP10精彩集锦
2016/02/28 DOTA
在漏洞利用Python代码真的很爽
2007/08/26 Python
跟老齐学Python之使用Python操作数据库(1)
2014/11/25 Python
Python常见数据类型转换操作示例
2019/05/08 Python
tensorflow 保存模型和取出中间权重例子
2020/01/24 Python
python函数调用,循环,列表复制实例
2020/05/03 Python
python能做哪方面的工作
2020/06/15 Python
vscode+PyQt5安装详解步骤
2020/08/12 Python
菲律宾领先的在线时尚商店:Zalora菲律宾
2018/02/08 全球购物
美国在线打印网站:Overnight Prints
2018/10/11 全球购物
银行毕业实习自我鉴定
2013/09/19 职场文书
组织关系转移介绍信
2014/01/16 职场文书
学校消防安全制度
2014/01/30 职场文书
心理学专业大学生职业生涯规划范文
2014/02/19 职场文书
《三个小伙伴》教学反思
2014/04/11 职场文书
毕业论文评语大全
2014/04/29 职场文书
2014年设计师工作总结
2014/11/25 职场文书
世界气象日活动总结
2015/02/27 职场文书
2015年销售人员工作总结
2015/04/07 职场文书
《悲惨世界》:比天空更广阔的是人的心灵
2020/01/16 职场文书