使用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库 开发规则
Jan 31 Javascript
jQuery学习笔记 操作jQuery对象 CSS处理
Sep 19 Javascript
JavaScript中的Primitive对象封装介绍
Dec 31 Javascript
Javascript通过overflow控制列表闭合与展开的方法
May 15 Javascript
vue2.0+webpack环境的构造过程
Nov 08 Javascript
JavaScript中object和Object的区别(详解)
Feb 27 Javascript
jQuery Ajax自定义分页组件(jquery.loehpagerv1.0)实例详解
May 01 jQuery
angular2模块和共享模块详解
Apr 08 Javascript
Vue动画事件详解及过渡动画实例
Feb 09 Javascript
js中比较两个对象是否相同的方法示例
Sep 02 Javascript
Ant Design Pro 下实现文件下载的实现代码
Dec 03 Javascript
js实现消灭星星(web简易版)
Mar 24 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编程中字符串处理的5个技巧小结
2007/11/13 PHP
DEDECMS首页调用图片集里的多张图片
2015/06/05 PHP
PHP生成plist数据的方法
2015/06/16 PHP
Zend Framework动作助手Redirector用法实例详解
2016/03/05 PHP
PHP+Ajax实现的无刷新分页功能详解【附demo源码下载】
2017/07/03 PHP
php根据命令行参数生成配置文件详解
2019/03/15 PHP
PHP各种常见经典算法总结【排序、查找、翻转等】
2019/08/05 PHP
javascript整除实现代码
2010/11/23 Javascript
Javascript继承(上)——对象构建介绍
2012/11/08 Javascript
js动态改变select选择变更option的index值示例
2014/07/10 Javascript
JavaScript Math.round() 方法
2015/12/18 Javascript
自动适应iframe右边的高度
2016/12/22 Javascript
JavaScript原型继承_动力节点Java学院整理
2017/06/30 Javascript
Angular4集成ng2-file-upload的上传组件
2018/03/14 Javascript
关于js对textarea换行符的处理方法浅析
2018/08/03 Javascript
微信小程序实现点击图片旋转180度并且弹出下拉列表
2018/11/27 Javascript
vue中使用rem布局代码详解
2019/10/30 Javascript
JS实现碰撞检测效果
2020/03/12 Javascript
redux处理异步action解决方案
2020/03/22 Javascript
Object.keys() 和 Object.getOwnPropertyNames() 的区别详解
2020/05/21 Javascript
[36:14]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第二局
2016/02/28 DOTA
[02:52]2017DOTA2国际邀请赛中国区预选赛晋级之路
2017/07/03 DOTA
Python SQLite3数据库操作类分享
2014/06/10 Python
Python中getpass模块无回显输入源码解析
2018/01/11 Python
Python生成短uuid的方法实例详解
2018/05/29 Python
Python中zip函数如何使用
2020/06/04 Python
SQL语言面试题
2013/08/27 面试题
社区母亲节活动记录
2014/03/06 职场文书
小学班主任评语
2014/12/29 职场文书
高中生毕业评语
2014/12/30 职场文书
考试作弊检讨书
2015/01/27 职场文书
优秀教师个人总结
2015/02/11 职场文书
中学教师读书笔记
2015/07/01 职场文书
三八红旗手先进事迹材料(2016推荐版)
2016/02/25 职场文书
Python MNIST手写体识别详解与试练
2021/11/07 Python
Python可视化学习之seaborn调色盘
2022/02/24 Python