欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2007年02月02日 00:00:00   作者:  
(一)
ie 、firefox以及其它瀏覽器對于 table 標(biāo)簽的操作都各不相同,在ie中不允許對table和tr的innerHTML賦值,使用js增加一個(gè)tr時(shí),使用appendChile方法也不管用。下面是我就三種瀏覽器測試的結(jié)果: 

insertRow

IE6 :支持,而且默認(rèn)參數(shù)為-1,默認(rèn)添加到最后

FireFox :支持,但部支持默認(rèn)參數(shù)

Opera :支持,支持默認(rèn)參數(shù),默認(rèn)添加到最前


AppendChild

IE6 :不支持

FireFox :支持,但增加TR后不影響ROWS

Opera :支持,效果同insertRow(-1),影響ROWS 

最大限度的遵循規(guī)范,就能寫出安全的、適用性強(qiáng)的代碼了: 

//向table追加一個(gè)空行:
var otr = otable.insertRow(-1);
var otd = document.createElement("td");
otd.innerHTML = " "; 
otd.className = "XXXX"; 
otr.appendChild(otd); 

這樣就可以運(yùn)行在這三種瀏覽器上了
(三)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
對應(yīng)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;
}
您可能感興趣的文章:

相關(guān)文章

最新評論