使用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背投广告代码的完善
Apr 08 Javascript
jQuery快速上手:写jQuery与直接写JS的区别详细解析
Aug 26 Javascript
node.js中的path.isAbsolute方法使用说明
Dec 08 Javascript
JavaScript设计模式之工厂模式和构造器模式
Feb 11 Javascript
jQuery移动web开发中的页面初始化与加载事件
Dec 03 Javascript
javascript简单实现跟随滚动条漂浮的返回顶部按钮效果
Aug 19 Javascript
微信开发 使用picker封装省市区三级联动模板
Oct 28 Javascript
浅析script标签中的defer与async属性
Nov 30 Javascript
Angular4如何自定义首屏的加载动画详解
Jul 26 Javascript
使用jquery DataTable和ajax向页面显示数据列表的方法
Aug 09 jQuery
javascript将非数值转换为数值
Sep 13 Javascript
Vue.js实现tab切换效果
Jul 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中使用XML
2006/10/09 PHP
PHP获取MAC地址的具体实例
2013/12/13 PHP
PHP判断远程图片是否存在的几种方法
2014/05/04 PHP
php简单生成随机数的方法
2015/07/30 PHP
CI框架实现cookie登陆的方法详解
2016/05/18 PHP
ThinkPHP防止重复提交表单的方法实例分析
2018/05/10 PHP
jQuery 标题的自动翻转实现代码
2009/10/14 Javascript
jQuery总体架构的理解分析
2011/03/07 Javascript
Javascript this 关键字 详解
2014/10/22 Javascript
jQuery 处理页面的事件详解
2015/01/20 Javascript
Vue.js仿Metronic高级表格(二)数据渲染
2017/04/19 Javascript
JS实现图片放大镜插件详解
2017/11/06 Javascript
Vue render深入开发讲解
2018/04/13 Javascript
React中的render何时执行过程
2018/04/13 Javascript
Angular 如何使用第三方库的方法
2018/04/18 Javascript
Vue中使用ElementUI使用第三方图标库iconfont的示例
2018/10/11 Javascript
[00:52]DOTA2第二届亚洲邀请赛预选赛宣传片
2017/01/13 DOTA
Python help()函数用法详解
2014/03/11 Python
跟老齐学Python之玩转字符串(2)
2014/09/14 Python
Python利用带权重随机数解决抽奖和游戏爆装备问题
2016/06/16 Python
python+pygame简单画板实现代码实例
2017/12/13 Python
python制作朋友圈九宫格图片
2019/11/03 Python
Django继承自带user表并重写的例子
2019/11/18 Python
python 计算概率密度、累计分布、逆函数的例子
2020/02/25 Python
python 动态渲染 mysql 配置文件的示例
2020/11/20 Python
Chicco婴儿用品美国官网:汽车座椅、婴儿推车、高脚椅等
2018/11/05 全球购物
匡威西班牙官网:Converse西班牙
2019/10/01 全球购物
LUISAVIAROMA德国官网:时尚奢侈品牌购物网站
2020/11/12 全球购物
【魔兽争霸3重制版】原版画面与淬火MOD画面对比
2021/03/26 魔兽争霸
函授毕业生自我鉴定
2013/11/06 职场文书
进步之星获奖感言
2014/02/22 职场文书
党员大会主持词
2014/04/02 职场文书
大专生自荐书范文
2014/06/22 职场文书
2015年人力资源工作总结
2015/04/08 职场文书
企业财务管理制度范本
2015/08/04 职场文书
PHP新手指南
2021/04/01 PHP