当前位置: 首页 > 图文教程 > 网络编程 > Javascript > 使用JS操作页面表格,元素的一些技巧

Javascript
Javascript入门学习第六篇 js DOM编程
Javascript入门学习第七篇 js dom实例操作
Javascript入门学习第八篇 js dom节点属性说明
Javascript入门学习第九篇 Javascript DOM 总结
Javascript入门学习资料收集整理篇
超级退弹代码
Firefox和IE浏览器兼容JS脚本写法小结
SWFObject Flash js调用类
javascript同步Import,同步调用外部js的方法
javascript jQuery $.post $.ajax用法
JS location几个方法小姐
关于树形菜单 Checkbox的全选
JS的数组的扩展实例代码
兼容ie ff div 层 打开+关闭+ 拖动+遮罩+移动+动画改变高宽
javascript 拽拉效果 供JS初学者学习参考
纯js实现的论坛常用的运行代码的效果
js显示当前星期的起止日期的脚本
神奇的代码 通杀各种网站-可随意修改复制页面内容
js番茄的表单验证类
番茄的表单验证类代码修改版

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 256 ::
收藏到网摘: n/a

(一)
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;
}