使用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 相关文章推荐
IE JS编程需注意的内存释放问题
Jun 23 Javascript
JQuery 小练习(实例代码)
Aug 07 Javascript
js或css实现滚动广告的几种方案
Jan 28 Javascript
js锁屏解屏通过对$.ajax进行封装实现
Jul 31 Javascript
JavaScript window.location对象
Nov 14 Javascript
jQuery插件scroll实现无缝滚动效果
Apr 27 Javascript
JS模式之简单的订阅者和发布者模式完整实例
Jun 30 Javascript
JS实现网页游戏中滑块响应鼠标点击移动效果
Oct 19 Javascript
在ASP.NET MVC项目中使用RequireJS库的用法示例
Feb 15 Javascript
BootStrap智能表单实战系列(九)表单图片上传的支持
Jun 13 Javascript
微信小程序 MINA文件结构
Oct 17 Javascript
vue router嵌套路由在history模式下刷新无法渲染页面问题的解决方法
Jan 25 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动态创建Flash动画
2006/10/09 PHP
一家之言的经验之谈php+mysql扎实个人基本功
2008/03/27 PHP
功能齐全的PHP发送邮件类代码附详细说明
2008/07/10 PHP
php+redis实现商城秒杀功能
2020/11/19 PHP
Centos7安装swoole扩展操作示例
2020/03/26 PHP
JavaScript 事件的一些重要说明
2009/10/25 Javascript
JS运行耗时操作的延时显示方法
2010/11/19 Javascript
推荐30个新鲜出炉的精美 jQuery 效果
2012/03/26 Javascript
通过JQuery实现win8一样酷炫的动态磁贴效果(示例代码)
2013/07/13 Javascript
ParseInt函数参数设置介绍
2014/01/02 Javascript
可以浮动某个物体的jquery控件用法实例
2015/07/24 Javascript
javascript:void(0)是什么意思及href=#与href=javascriptvoid(0)的区别
2015/11/13 Javascript
Bootstrap每天必学之按钮(Button)插件
2016/04/25 Javascript
个人网站留言页面(前端jQuery编写、后台php读写MySQL)
2016/05/03 Javascript
BootStrap整体框架之基础布局组件
2016/12/15 Javascript
vue图片加载与显示默认图片实例代码
2017/03/16 Javascript
vue2单元测试环境搭建
2018/05/24 Javascript
深入浅出理解JavaScript闭包的功能与用法
2018/08/01 Javascript
微信小程序 如何保持登录状态
2019/08/16 Javascript
js+springMVC 提交数组数据到后台的实例
2019/09/21 Javascript
Python使用Pycrypto库进行RSA加密的方法详解
2016/06/06 Python
Python 编码处理-str与Unicode的区别
2016/09/06 Python
python微信撤回监测代码
2019/04/29 Python
Python math库 ln(x)运算的实现及原理
2019/07/17 Python
Python高阶函数、常用内置函数用法实例分析
2019/12/26 Python
浅谈pytorch卷积核大小的设置对全连接神经元的影响
2020/01/10 Python
python实现密码强度校验
2020/03/18 Python
Python高阶函数与装饰器函数的深入讲解
2020/11/10 Python
python爬虫利用selenium实现自动翻页爬取某鱼数据的思路详解
2020/12/22 Python
amazeui模态框弹出后立马消失并刷新页面
2020/08/19 HTML / CSS
党员年终民主评议的自我评价
2013/11/05 职场文书
大学生的应聘自我评价
2013/12/13 职场文书
护理个人求职信范文
2014/01/08 职场文书
群众路线教育实践活动思想汇报(2014特荐篇)
2014/09/16 职场文书
离婚财产分配协议书
2014/10/21 职场文书
先进个人事迹材料范文
2014/12/30 职场文书