使用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;
}
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)文章
鍵盤事件中keyCode、which和charCode 的兼容性測試
鍵盤事件中keyCode、which和charCode 的兼容性測試...2007-03-03在javascript中關(guān)于節(jié)點(diǎn)內(nèi)容加強(qiáng)
本篇文章,小編為大家介紹,關(guān)于在javascript中關(guān)于節(jié)點(diǎn)內(nèi)容加強(qiáng)的問題2013-04-04個(gè)人總結(jié)的一些關(guān)于String、Function、Array的屬性和用法
個(gè)人總結(jié)的一些關(guān)于String、Function、Array的屬性和用法...2007-01-01JavaScript sup方法入門實(shí)例(把字符串顯示為上標(biāo))
這篇文章主要介紹了JavaScript sup方法入門實(shí)例,sup方法用于把字符串顯示為上標(biāo),需要的朋友可以參考下2014-10-10VB倒計(jì)時(shí)器和JS當(dāng)前時(shí)間
VB倒計(jì)時(shí)器和JS當(dāng)前時(shí)間...2006-11-11Javascript Boolean、Nnumber、String 強(qiáng)制類型轉(zhuǎn)換的區(qū)別詳細(xì)介紹
我們知道 Boolean(value) 是把值轉(zhuǎn)換成Boolean類型,Nnumber(value) 是把值轉(zhuǎn)換成數(shù)字(整型或浮點(diǎn)數(shù)),而 String(value) 是把值轉(zhuǎn)換成字符串,需要的朋友可以了解下2012-12-12對象轉(zhuǎn)換為原始值的實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄獙ο筠D(zhuǎn)換為原始值的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-06-06