DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> JavaScript基礎知識 >> 使用JS操作頁面表格,元素的一些技巧
使用JS操作頁面表格,元素的一些技巧
編輯:JavaScript基礎知識     
(一)
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;
}
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved