使用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
Feb 25 Javascript
关于img的href和src取变量及赋值的方法
Apr 28 Javascript
浅析webapp框架AngularUI的demo
Dec 21 Javascript
jquery实现实时改变网页字体大小、字体背景色和颜色的方法
Aug 05 Javascript
jQuery实现为控件添加水印文字效果(附源码)
Dec 02 Javascript
JavaScript弹出对话框的三种方式
Mar 23 Javascript
Node.js的npm包管理器基础使用教程
May 26 Javascript
touch.js 拖动、缩放、旋转 (鼠标手势)功能代码
Feb 04 Javascript
jquery实现页面加载效果
Feb 21 Javascript
JQuery模拟实现网页中自定义鼠标右键菜单功能
Nov 14 jQuery
VUE项目中加载已保存的笔记实例方法
Sep 14 Javascript
解决layui的radio属性或别的属性没显示出来的问题
Sep 26 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操作MongoDB的技术总结
2013/06/02 PHP
php构造函数实例讲解
2013/11/13 PHP
codeigniter框架The URI you submitted has disallowed characters错误解决方法
2014/05/06 PHP
ThinkPHP结合ajax、Mysql实现的客户端通信功能代码示例
2014/06/23 PHP
百度实时推送api接口应用示例
2014/10/21 PHP
PHP CURL中传递cookie的方法步骤
2019/05/09 PHP
Yii框架函数简单用法分析
2019/09/09 PHP
javascript中有趣的反柯里化深入分析
2012/12/05 Javascript
提升PHP安全:8个必须修改的PHP默认配置
2014/11/17 Javascript
js针对ip地址、子网掩码、网关的逻辑性判断
2016/01/06 Javascript
基于javascript实现listbox左右移动
2016/01/29 Javascript
使用Object.defineProperty实现简单的js双向绑定
2016/04/15 Javascript
JS获取随机数和时间转换的简单实例
2016/07/10 Javascript
js 判断各种数据类型的简单方法(推荐)
2016/08/29 Javascript
如何从零开始利用js手写一个Promise库详解
2018/04/19 Javascript
讲解vue-router之什么是动态路由
2018/05/28 Javascript
微信小程序之批量上传并压缩图片的实例代码
2018/07/05 Javascript
微信小程序自定义底部导航带跳转功能
2018/11/27 Javascript
p5.js绘制创意自画像
2019/11/04 Javascript
js回调函数仿360开机
2019/12/26 Javascript
浅谈VUE中演示v-for为什么要加key
2020/01/16 Javascript
ES2020让代码更优美的运算符 (?.) (??)
2021/01/04 Javascript
35个Python编程小技巧
2014/04/01 Python
Python实例分享:快速查找出被挂马的文件
2014/06/08 Python
python批量替换多文件字符串问题详解
2018/04/22 Python
Python小游戏之300行代码实现俄罗斯方块
2019/01/04 Python
Python实现爬取亚马逊数据并打印出Excel文件操作示例
2019/05/16 Python
中国酒类在线零售网站:酒仙网
2016/08/20 全球购物
马克华菲官方商城:Mark Fairwhale
2016/09/04 全球购物
Feelunique德国官方网站:欧洲最大的在线美容零售商
2019/07/20 全球购物
Nixon手表英国官网:美国尼克松手表品牌
2020/02/10 全球购物
Java面试题:说出如下代码的执行结果
2015/10/30 面试题
供应商食品安全承诺书
2015/04/29 职场文书
2016大一新生军训感言
2015/12/08 职场文书
简历上的自我评价,该怎么写呢?
2019/06/13 职场文书
pandas:get_dummies()与pd.factorize()的用法及区别说明
2021/05/21 Python