一组JS创建和操作表格的函数集合


Posted in Javascript onMay 07, 2009

stone.js
//**************************************神吹表格操作函数*******************************************************
//隐藏列
function setHiddenRow(tb,iCol){
for (i=0;i<oTable.rows.length;i++){
tb.rows[i].cells[iCol].style.display = oTable.rows[i].cells[iCol].style.display=="none"?"block":"none";
}
}
//隐藏行
function setHiddenRow(tb,iRow){
tb.rows[iRow].style.display = oTable.rows[iRow].style.display == "none"?"block":"none";
}
//创建表格
function createTable(id,rows,cells,tbid){
var tb=document.createElement("table");
var tbody = document.createElement("tbody");
for(var i=0;i<rows;i++){
var tr=document.createElement("tr");
for(var j=0;j<cells;j++){
var cell=document.createElement("td");
tr.appendChild(cell);
}
tbody.appendChild(tr);
}
tb.appendChild(tbody);
tb.setAttribute("id",tbid);//设置创建的TABLE的ID
document.getElementById(id).appendChild(tb);
}
//插入文本
function insertText(tb,row,cel,text){
txt=document.createTextNode(text);
tb.rows[row].cells[cel].appendChild(txt);
}
//修改文本
function updateText(tb,row,cel,text){
tb.rows[row].cells[cel].firstChild.nodeValue=text;
}
//添加子节点
function toAppendChild(tb,row,cel,child){
tb.rows[row].cells[cel].appendChild(child);
}
//删除某行
function removeRow(tb,row){
tb.lastChild.removeChild(tb.rows[row]);
}
//单元格设置属性
function cellSetAttribute(tb,row,col,attributeName,attributeValue){
tb.rows[row].cells[col].setAttribute(attributeName,attributeValue);
}
//单元格添加监听器
function cellAddListener(tb,row,cel,event,fun){
if(window.addEventListener)
{
//其它浏览器的事件代码: Mozilla, Netscape, Firefox
//添加的事件的顺序即执行顺序 //注意用 addEventListener 添加带on的事件,不用加on
// img.addEventListener('click', delRow(this), true);
tb.rows[row].cells[cel].addEventListener(event,fun, true);
}
else
{
//IE 的事件代码 在原先事件上添加 add 方法
// img.attachEvent('onclick',delRow(this));
tb.rows[row].cells[cel].attachEvent("on"+event,fun);
}
}
//新增行
function insertRow(oTable){
var tr=document.createElement("tr");
for (i=0;i<oTable.rows[0].cells.length;i++){
var td= document.createElement("td");
tr.appendChild(td);
}
oTable.lastChild.appendChild(tr);
}
//行设置属性
function rowSetAttribute(tb,row,attributeName,attributeValue){
tb.rows[row].setAttribute(attributeName,attributeValue);
}
//行添加监听器
function rowAddListener(tb,row,event,fun){
if(window.addEventListener)
{
//其它浏览器的事件代码: Mozilla, Netscape, Firefox
//添加的事件的顺序即执行顺序 //注意用 addEventListener 添加带on的事件,不用加on
// img.addEventListener('click', delRow(this), true);
tb.rows[row].addEventListener(event,fun, true);
}
else
{
//IE 的事件代码 在原先事件上添加 add 方法
// img.attachEvent('onclick',delRow(this));
tb.rows[row].attachEvent("on"+event,fun);
}
}
//新增列
function addCells(tb){
for (i=0;i<tb.rows.length;i++){
var td= document.createElement("td");
tb.rows[i].appendChild(td);
}
}
//批量修改单元格属性
function cellsSetAttribute(oTable,attributeName,attributeValue){
for (i=0;i<oTable.rows.length;i++){
for (j=0;j<oTable.rows[i].cells.length;j++){
oTable.rows[i].cells[j].setAttribute(attributeName,attributeValue);
}
}
}
//合并只支持单向合并
//行合并
function mergerRow(tb,row,cell,num){
for(var i= (row+1),j=0;j<(num-1);j++){
tb.rows[i].removeChild(tb.rows[i].cells[cell]);
}
tb.rows[row].cells[cell].setAttribute("rowspan",num);
// document.getElementById('c').innerHTML=document.getElementById('u').innerHTML;
}
//列合并
function mergerCell(tb,row,cell,num){
for(var i= (cell+1), j=0;j<(num-1);j++){
tb.rows[row].removeChild(tb.rows[row].cells[i]);
}
tb.rows[row].cells[cell].setAttribute("colspan",num);
// document.getElementById('c').innerHTML=document.getElementById('u').innerHTML;
}
测试DEMO
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> new document </title>
<meta name="generator" content="editplus" />
<meta name="author" content="" />
<meta name="keywords" content="" />
<meta name="description" content="" />
<style>
.testclass{background-color:yellow;}
</style>
<script type="text/javascript" src="stone.js"></script>
<script type="text/javascript">
<!--
function giveText(){
for(var i=0;i<5;i++){
for(var j=0;j<5;j++){
insertText(mytable,i,j,i*5+j);
}
}
}
function addInput(){
var input = document.createElement("input");
input.setAttribute("type","text");
input.setAttribute("value","我是新增的");
toAppendChild(mytable,3,3,input);
}
function listen(){
alert('恭喜你!监听器安装成功!');
}
//-->
</script>
</head>
<body>
表格函数测试<br />
<div id="u">
</div>
<input type="button" value="新建一个5X5的表格" onclick="createTable('u',5,5,'mytable');" />  
<input type="button" value="显示表格边框" onclick="document.getElementById('mytable').setAttribute('border',1);" />  
<input type="button" value="插入文本" onclick="giveText();" />  
<input type="button" value="修改文本" onclick="updateText(mytable,3,3,'text')" />  <br />
<input type="button" value="添加子节点input" onclick="addInput();" />  
<input type="button" value="删除第5行" onclick="removeRow(mytable,4);" />  
<input type="button" value="设置单元格宽度" onclick="cellSetAttribute(mytable,0,0,'width','50')" />  
<input type="button" value="添加单元格监听器" onclick="cellAddListener(mytable,2,2,'click',listen)" />  <br />
<input type="button" value="行合并" onclick="mergerRow(mytable,2,1,2); document.getElementById('u').innerHTML=document.getElementById('u').innerHTML;" />  
<input type="button" value="列合并" onclick="mergerCell(mytable,1,2,3); document.getElementById('u').innerHTML=document.getElementById('u').innerHTML;" />  
<input type="button" value="设置单元格背景色" onclick="cellsSetAttribute(mytable,'class','testclass'); document.getElementById('u').innerHTML=document.getElementById('u').innerHTML;" />  
<input type="button" value="设置行高" onclick="rowSetAttribute(mytable,2,'height','50');" />  <br />
<input type="button" value="新增第4行监听器" onclick="rowAddListener(mytable,3,'click',listen);" />  
<input type="button" value="新增一行" onclick="insertRow(mytable);" />  
<input type="button" value="新增列" onclick="addCells(mytable);" />  
</body>
</html>
测试截图:
一组JS创建和操作表格的函数集合

Javascript 相关文章推荐
javascript数组使用调用方法汇总
Dec 08 Javascript
javascript之AJAX框架使用说明
Apr 24 Javascript
Dom 结点创建 基础知识
Oct 01 Javascript
js判断上传文件的类型和大小示例代码
Oct 18 Javascript
js关于精确计算和数值格式化以及直接引js文件
Jan 28 Javascript
jquery根据属性和index来查找属性值并操作
Jul 25 Javascript
JS实现仿京东淘宝竖排二级导航
Dec 08 Javascript
Bootstrap每天必学之导航
Nov 26 Javascript
jQuery遍历json的方法(推荐)
Jun 12 Javascript
JS产生随机数的几个用法详解
Jun 22 Javascript
微信小程序 wx.login解密出现乱码的问题解决办法
Mar 10 Javascript
JavaScript 对引擎、运行时、调用堆栈的概述理解
Oct 22 Javascript
给Function做的OOP扩展
May 07 #Javascript
js arguments.callee的应用代码
May 07 #Javascript
javascript 有用的脚本函数
May 07 #Javascript
JavaScript的parseInt 进制问题
May 07 #Javascript
日期 时间js控件
May 07 #Javascript
关于viewport,Ext.panel和Ext.form.panel的关系
May 07 #Javascript
jQuery 1.2.x 升? 1.3.x 注意事项
May 06 #Javascript
You might like
用PHP实现浏览器点击下载TXT文档的方法详解
2013/06/02 PHP
PHP 5.6.11 访问SQL Server2008R2的几种情况详解
2016/08/08 PHP
JavaScript中使用正则匹配多条,且获取每条中的分组数据
2010/11/30 Javascript
jQuery easyui datagrid动态查询数据实例讲解
2013/02/26 Javascript
JQuery伸缩导航练习示例
2013/11/13 Javascript
下拉列表select 由左边框移动到右边示例
2013/12/04 Javascript
JS对象转换为Jquery对象实现代码
2013/12/29 Javascript
js构造函数、索引数组和属性的实现方式和使用
2014/11/16 Javascript
javascript计时器详解
2015/02/28 Javascript
功能强大的Bootstrap效果展示(二)
2016/08/03 Javascript
vue项目中使用Svg的方法
2018/10/24 Javascript
jquery.pager.js实现分页效果
2019/07/29 jQuery
[00:56]跨越时空加入战场 全新祈求者身心“失落奇艺侍祭”展示
2019/07/20 DOTA
仅用500行Python代码实现一个英文解析器的教程
2015/04/02 Python
python中string模块各属性以及函数的用法介绍
2016/05/30 Python
Python使用folium excel绘制point
2019/01/03 Python
Python使用MyQR制作专属动态彩色二维码功能
2019/06/04 Python
Django框架HttpResponse对象用法实例分析
2019/11/01 Python
Python上下文管理器类和上下文管理器装饰器contextmanager用法实例分析
2019/11/07 Python
python 数据库查询返回list或tuple实例
2020/05/15 Python
Python+Opencv身份证号码区域提取及识别实现
2020/08/25 Python
Django ModelForm组件原理及用法详解
2020/10/12 Python
美国婚戒购物网站:Anjays Designs
2017/06/28 全球购物
尤为Wconcept中国官网:韩国设计师品牌服饰
2019/01/10 全球购物
自荐信范文
2013/12/10 职场文书
庆元旦迎新年广播稿
2014/02/18 职场文书
疾病防治方案
2014/05/31 职场文书
学校教研活动总结
2014/07/02 职场文书
感恩教师节演讲稿
2014/09/03 职场文书
2014国庆节商场促销活动策划方案
2014/09/16 职场文书
人工作失职检讨书
2015/05/05 职场文书
2015领导干部廉洁自律工作总结
2015/07/23 职场文书
职场新人知识:如何制定一份合理的工作计划?
2019/09/11 职场文书
Python获取百度热搜的完整代码
2021/04/07 Python
python字符串的多行输出的实例详解
2021/06/08 Python
python语言中pandas字符串分割str.split()函数
2022/08/05 Python