使用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 相关文章推荐
jQuery 1.0.2
Oct 11 Javascript
js Flash插入函数免激活代码
Mar 31 Javascript
js RuntimeObject() 获取ie里面自定义函数或者属性的集合
Nov 23 Javascript
jQuery网页选项卡插件rTabs用法实例分析
Aug 26 Javascript
js实现二级菜单渐隐显示
Nov 03 Javascript
Javascript获取随机数的实现方法
Jun 22 Javascript
利用jquery正则表达式在页面验证url网址输入是否正确
Apr 04 jQuery
jquery animate动画持续运动的实例
Nov 29 jQuery
vue给input file绑定函数获取当前上传的对象完美实现方法
Dec 15 Javascript
Vue中&quot;This dependency was not found&quot;问题的解决方法
Jun 19 Javascript
Vue中 key keep-alive的实现原理
Sep 18 Javascript
Vue的属性、方法、生命周期实例代码详解
Sep 17 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 网页过期时间的控制代码
2009/06/29 PHP
一个简单php扩展介绍与开发教程
2010/08/19 PHP
PHP+javascript制作带提示的验证码源码分享
2014/05/28 PHP
php基于base64解码图片与加密图片还原实例
2014/11/03 PHP
php创建、获取cookie及基础要点分析
2015/01/26 PHP
Zend Framework教程之Autoloading用法详解
2016/03/08 PHP
mongodb和php的用法详解
2019/03/25 PHP
javascript实现的网页局布刷新效果
2008/12/01 Javascript
ajax 缓存 问题 requestheader
2010/08/01 Javascript
javascript事件模型实例分析
2015/01/30 Javascript
jquery实现焦点图片随机切换效果的方法
2015/03/12 Javascript
AngularJs  Using $location详解及示例代码
2016/09/02 Javascript
禁用backspace网页回退功能的实现代码
2016/11/15 Javascript
vue微信分享 vue实现当前页面分享其他页面
2017/12/02 Javascript
js判断节假日实例代码
2017/12/27 Javascript
微信小程序实现的涂鸦功能示例【附源码下载】
2018/01/12 Javascript
解决js ajax同步请求造成浏览器假死的问题
2018/01/18 Javascript
angularjs select 赋值 ng-options配置方法
2018/02/28 Javascript
详解使用VueJS开发项目中的兼容问题
2018/08/02 Javascript
vue 中基于html5 drag drap的拖放效果案例分析
2018/11/01 Javascript
基于webpack4+vue-cli3项目实现换肤功能
2019/07/17 Javascript
layui使用form表单实现post请求页面跳转的方法
2019/09/14 Javascript
vue项目初始化到登录login页面的示例
2019/10/31 Javascript
[54:41]2018DOTA2亚洲邀请赛3月30日 小组赛B组 VGJ.T VS paiN
2018/03/31 DOTA
python3+PyQt5自定义视图详解
2018/04/24 Python
基于python3 pyQt5 QtDesignner实现窗口化猜数字游戏功能
2019/07/15 Python
Matplotlib使用Cursor实现UI定位的示例代码
2020/03/12 Python
法学专业应届生求职信
2013/10/16 职场文书
致铅球运动员加油稿
2014/02/13 职场文书
幼儿园大班区域活动总结
2014/07/09 职场文书
个人整改措施落实情况汇报
2014/10/29 职场文书
《雷雨》教学反思
2016/02/20 职场文书
Python如何使用logging为Flask增加logid
2021/03/30 Python
RPM包方式安装Oracle21c的方法详解
2021/08/23 Oracle
JavaScript实例 ODO List分析
2022/01/22 Javascript
Python使用Opencv打开笔记本电脑摄像头报错解问题及解决
2022/06/21 Python