使用Js实现网页表格操作
2011-10-17 08:59
441 查看
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;
}
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中使用mailto实现将用户在网页中输入的内容传递到本地邮件客户端
- JS实现表格使用上下左右键聚集
- 使用JS操作页面表格,元素的一些技巧
- js使用DOM操作实现简单留言板的方法
- 使用JS实现网页动态换肤
- 使用监听事件实现访问网页、拨打电话、播放音乐等操作
- [置顶] 在网页中使用js简单的实现弹出菜单,请高手飘过
- 使用js操作css实现js改变背景图片示例
- JS操作CSS随机改变网页背景实现思路
- html使用表格实现网页制作
- JS实现动态表格的新增,修改,删除操作
- 使用device.js检测设备并实现不同设备展示不同网页
- 用js实现网页中打印、刷新、关闭、前进、后退、返回等操作
- 使用JS实现简单的表格的增加删除全选反选以及高亮效果
- 点击操作实现表格多选的js
- JS实现全选,用于界面批量操作向后台传值时使用
- 如何使用 require.js ,实现js文件的异步加载,避免网页失去响应,管理模块之间的依赖性,便于代码的编写和维护。
- js 使用前端导出excel,设置标题和页脚,实现特殊表格需求
- 【js】使用javascript 实现静态网页分页效果