使用JS操作页面表格,元素的一些技巧

 更新时间:2007年02月02日 00:00:00   作者:  
(一)
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;
}
您可能感兴趣的文章:

相关文章

  • JS 数组sort方法的升序为什么是a-b你知道吗

    JS 数组sort方法的升序为什么是a-b你知道吗

    这篇文章主要为大家详细介绍了JS 数组sort方法为什么升序是a-b,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02
  • javascript中clone对象详解

    javascript中clone对象详解

    这篇文章主要介绍了javascript中clone对象的方法,需要的朋友可以参考下
    2014-12-12
  • javascript对象之内置对象Math使用方法

    javascript对象之内置对象Math使用方法

    Math对象的一些方法能实现我们课本上的某些数学计算,比较常用的方法有如下几个
    2010-04-04
  • 聊一聊JavaScript作用域和作用域链

    聊一聊JavaScript作用域和作用域链

    这篇文章主要和大家一起聊一聊JavaScript作用域和作用域链,什么是JavaScript作用域和作用域链,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • javaScript事件机制兼容【详细整理】

    javaScript事件机制兼容【详细整理】

    下面小编就为大家带来一篇javaScript事件机制兼容【详细整理】。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-07-07
  • js 操作符汇总

    js 操作符汇总

    本文并没有详细的介绍js所有的操作符,只是就js在操作符上与其它常用语言不一样的独特之处列举一二,了解了这些,至少不会让我们在读一些开源框架js代码时一头雾水,并且可以让我们的js代码更简洁、更安全(少出bug)。
    2014-11-11
  • Javascript实例教程(19) 使用HoTMetal(6)

    Javascript实例教程(19) 使用HoTMetal(6)

    Javascript实例教程(19) 使用HoTMetal(6)...
    2006-12-12
  • js选择器全面解析

    js选择器全面解析

    下面小编就为大家带来一篇js选择器全面解析。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • javascript创建对象、对象继承的实用方式详解

    javascript创建对象、对象继承的实用方式详解

    JavaScript中的对象是基于原型的。原型是对象的基础,它定义并实现了一个新对象所必须包含的成员列表,并被所有同类对象实例所共享。与其他语言中类的概念相比,原型更像是类的静态成员。本文着重给大家介绍javascript创建对象、对象继承的实用方式
    2016-03-03
  • DOM相关内容速查手册

    DOM相关内容速查手册

    DOM相关内容速查手册...
    2007-02-02

最新评论