使用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 相关文章推荐
利用google提供的API(JavaScript接口)获取网站访问者IP地理位置的代码详解
Jul 24 Javascript
Jquery弹出窗口插件 LeanModal的使用方法
Mar 10 Javascript
解析javascript 数组以及json元素的添加删除
Jun 26 Javascript
JS判断两个时间大小的示例代码
Jan 28 Javascript
基于JavaScript代码实现随机漂浮图片广告
Jan 05 Javascript
手机图片预览插件photoswipe.js使用总结
Aug 25 Javascript
Angular2-primeNG文件上传模块FileUpload使用详解
Jan 14 Javascript
easyui关于validatebox实现多重规则验证的方法(必看)
Apr 12 Javascript
javascript获取元素的计算样式
May 24 Javascript
探索JavaScript中私有成员的相关知识
Jun 13 Javascript
微信小程序如何调用图片接口API并居中显示
Jun 29 Javascript
javascript实现前端分页功能
Nov 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
星际争霸 Starcraft 发展史
2020/03/14 星际争霸
thinkPHP实现瀑布流的方法
2014/11/29 PHP
PHP 实现判断用户是否手机访问
2015/01/21 PHP
Laravel中任务调度console使用方法小结
2017/05/07 PHP
php 二维数组快速排序算法的实现代码
2017/10/17 PHP
Laravel 微信小程序后端实现用户登录的示例代码
2019/11/26 PHP
对xmlHttp对象方法和属性的理解
2011/01/17 Javascript
javascript解决innerText浏览器兼容问题思路代码
2013/05/17 Javascript
js动态添加删除,后台取数据(示例代码)
2013/11/25 Javascript
js中的eventType事件及其浏览器支持性介绍
2013/11/29 Javascript
新增加的内容是如何将div的scrollbar自动移动最下面
2014/01/02 Javascript
JS的get和set使用示例
2014/02/20 Javascript
TypeScript 学习笔记之基本类型
2015/06/19 Javascript
js中判断变量类型函数typeof的用法总结
2016/08/09 Javascript
详解Vue路由钩子及应用场景(小结)
2017/11/07 Javascript
浅谈vue使用axios的回调函数中this不指向vue实例,为undefined
2020/09/21 Javascript
解决vue侦听器watch,调用this时出现undefined的问题
2020/10/30 Javascript
[00:20]DOTA2荣耀之路7:-ah fu-抢盾
2018/05/31 DOTA
详解Python中for循环的使用
2015/04/14 Python
一张图带我们入门Python基础教程
2017/02/05 Python
利用python将图片转换成excel文档格式
2017/12/30 Python
python socket网络编程之粘包问题详解
2018/04/28 Python
flask框架中勾子函数的使用详解
2018/08/01 Python
python实现AES加密与解密
2019/03/28 Python
Django 中自定义 Admin 样式与功能的实现方法
2019/07/04 Python
Python制作微信好友背景墙教程(附完整代码)
2019/07/17 Python
详解三种方式实现平滑滚动页面到顶部的功能
2019/04/23 HTML / CSS
化工专业应届生求职信
2013/11/08 职场文书
试用期转正鉴定评语
2014/01/27 职场文书
自荐信的格式
2014/03/10 职场文书
小学毕业典礼主持词
2014/03/27 职场文书
离婚代理词范文
2015/05/23 职场文书
python tkinter模块的简单使用
2021/04/07 Python
mysql中between的边界,范围说明
2021/06/08 MySQL
浅谈Web Storage API的使用
2021/06/23 Javascript
Python OpenCV实现图形检测示例详解
2022/04/08 Python