使用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 相关文章推荐
[转]JS宝典学习笔记
Feb 07 Javascript
js 赋值包含单引号双引号问题的解决方法
Feb 26 Javascript
jquery图片播放浏览插件prettyPhoto使用详解
Dec 19 Javascript
javascript异步处理工作机制详解
Apr 13 Javascript
Javascript 两种刷新方法以及区别和适用范围
Jan 17 Javascript
快速使用node.js进行web开发详解
Apr 26 Javascript
详解webpack的proxyTable无效的解决方案
Jun 15 Javascript
vue2中使用sass并配置全局的sass样式变量的方法
Sep 04 Javascript
node学习笔记之读写文件与开启第一个web服务器操作示例
May 29 Javascript
实用Javascript调试技巧分享(小结)
Jun 18 Javascript
超详细的5个Shell脚本实例分享(值得收藏)
Aug 15 Javascript
针对Vue路由history模式下Nginx后台配置操作
Oct 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操作XML、读取数据和写入数据的实现代码
2014/08/15 PHP
Zend Framework框架之Zend_Mail实现发送Email邮件验证功能及解决标题乱码的方法
2016/03/21 PHP
PHP在线打包下载功能示例
2016/10/15 PHP
isArray()函数(JavaScript中对象类型判断的几种方法)
2009/11/26 Javascript
javascript sudoku 数独智力游戏生成代码
2010/03/27 Javascript
JS解析json数据并将json字符串转化为数组的实现方法
2012/12/25 Javascript
javascript时间排序算法实现活动秒杀倒计时效果
2021/01/28 Javascript
Node.js文件操作方法汇总
2016/03/22 Javascript
Js 获取、判断浏览器版本信息的简单方法
2016/08/08 Javascript
再谈javascript注入 黑客必备!
2016/09/14 Javascript
微信小程序 空白页重定向解决办法
2017/06/27 Javascript
angular-tree-component的使用详解
2018/07/30 Javascript
webpack打包html里面img后src为“[object Module]”问题
2019/12/22 Javascript
element中的$confirm的使用
2020/04/26 Javascript
Vue如何提升首屏加载速度实例解析
2020/06/25 Javascript
Python遍历文件夹和读写文件的实现代码
2016/08/28 Python
利用python画一颗心的方法示例
2017/01/31 Python
利用Python中的pandas库对cdn日志进行分析详解
2017/03/07 Python
Python实现的本地文件搜索功能示例【测试可用】
2018/05/30 Python
对python GUI实现完美进度条的示例详解
2018/12/13 Python
dataframe 按条件替换某一列中的值方法
2019/01/29 Python
浅析PEP570新语法: 只接受位置参数
2019/10/15 Python
Windows10+anacond+GPU+pytorch安装详细过程
2020/03/24 Python
Keras 切换后端方式(Theano和TensorFlow)
2020/06/19 Python
python能做哪些生活有趣的事情
2020/09/09 Python
使用Django的JsonResponse返回数据的实现
2021/01/15 Python
HTML5移动开发图片压缩上传功能
2016/11/09 HTML / CSS
优秀交警事迹材料
2014/01/26 职场文书
关于母亲节的感言
2014/02/04 职场文书
法人授权委托书格式
2014/04/08 职场文书
大学生社团活动总结
2014/04/26 职场文书
小班幼儿评语大全
2014/04/30 职场文书
12.4法制宣传日活动总结
2014/08/26 职场文书
企业年检委托书范本
2014/10/14 职场文书
大一学生个人总结
2015/02/15 职场文书
2016年学习贯彻十八届五中全会精神心得体会
2016/01/05 职场文书