javascript如何创建表格(javascript绘制表格的二种方法)


Posted in Javascript onDecember 10, 2013

1、inserRow()和insertCell()函数

insertRow()函数可以带参数,形式如下:

insertRow(index):index从0开始

这个函数将新行添加到index的那一行前,比如insertRow(0),是将新行添加到第一行之前。默认的insertRow()函数相当于insertRow(-1),将新行添加到表的最后。一般我们在使用的时候都是:objTable.insertRow(objTable.rows.length).就是为表格objTable在最后新增一行。

insertCell()和insertRow的用法相同,这里就不再说了。

2、deleteRow()和deleteCell()方法

deleteRow()函数可以带参数,形式如下:deleteRow(index):index从0开始

和上面两个方法差不多的意思,就是删除指定位置的行和单元格。要传入的参数:Index是行在表格中的位置,可以下面的方法取得然后去删除:

var row=document.getElementById("行的Id"); 
var index=row.rowIndex;//有这个属性,嘿嘿 
objTable.deleteRow(index);

在使用过程中我碰到的一个问题跟大家说一下,就是删除表格的行的时候,如果你删除了某一行,那么表格行数是马上就变化的,所以如果你要删除表格的所有行,下面的代码是错误的:

function clearRow(){ 
   objTable= document.getElementById("myTable");    for( var i=1; i<objTable.rows.length ; i++ ) 
   { 
   tblObj.deleteRow(i);    
      } 
}

这段代码要删除原来的表格的表体,有两个问题。首先不能是deleteRow(i),应该是deleteRow(1)。因为在删除表格行的时候,表格的行数在变化,这就是问题的关键,rows.length总是在变小,删除的行数总是会比预想的要少一半,所以正确的删除表格的行的代码应该这样:

function clearRow(){ 
   objTable= document.getElementById("myTable"); 
   var length= objTable.rows.length ; 
   for( var i=1; i<length; i++ ) 
   { 
       objTable.deleteRow(i);    
      } 
}

3、动态设置单元格与行的属性

A、采用setAttribute()方法,格式如下:setAttribute(属性,属性值)

说明:这个方法几乎所有的DOM对象都可以使用,第一个参数是属性的名称,比如说:border,第二个就是你要为border设置的值了,比如:1

var objMyTable = document.getElementById("myTable");
objMyTable.setAttribute("border",1);//为表格设置边框为1

其他的比如你要为一个TD设置高度,同样先取得这个TD对象,然后使用setAttribute()方法

var objCell = document.getElementById("myCell");
objCell.setAttribute("height",24);//为单元格设置高度为24

在使用的时候遇到一个设置样式的问题,不能用setAttribute("class","inputbox2");而应该使用setAttribute("className","inputbox2"),呵呵,其他我估计也有同样的问题,有些属性和我们在DW里面的不一致,呵呵,大家自己摸索吧。

B、直接赋值

var objMyTable = document.getElementById("myTable");
objMyTable.border=1;//为表格设置边框为1

这个方法也全部适用,呵呵。

4、创建表格

了解了行<tr>与单元格<td>的增删那就可以创建表格了。

第一步:你需要有一个你去动态变化的表格,我这里讲的是已经存在页面的表格,我们要设置一个id:myTable

var objMyTable = document.getElementById("myTable");

第二步:创建行与列的对象

var index = objMyTable.rows.length-1; 
var nextRow = objMyTable.insertRow(index);//要新增的行,我这里是从倒数第二行开始新增的
//单元格箱号 
var newCellCartonNo = nextRow.insertCell(); 
var cartonNoName = "IptCartonNo"; 
newCellCartonNo.innerHTML = " <input type='text' size='5' name="+cartonNoName+" id="+cartonNoName+" value=''>"; 
newCellCartonNo.setAttribute("className","tablerdd");

这样就搞定了,可以简单的创建一个行和列了。具体的代码我贴在下面。只是很简单的例子,不过方法就大概是上面的了,呵呵,慢慢摸索吧~

<!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> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
<title>蓝光-BlueShine</title> 
<script language="JavaScript"> 
var Count=false,NO=1; 
function addRow(){ 
Count=!Count; 
//添加一行 
var newTr = testTbl.insertRow(testTbl.rows.length); 
//添加两列 
var newTd0 = newTr.insertCell(); 
var newTd1 = newTr.insertCell(); 
var newTd2 = newTr.insertCell(); 
//设置列内容和属性 
if(Count){newTr.style.background="#FFE1FF";} 
else {newTr.style.background="#FFEFD5";} 
newTd0.innerHTML = '<input type=checkbox id="box4">'; 
NO++ 
newTd1.innerText="第"+ NO+"行"; 
} 
</script> 
</head>
<body> 
<table width="399" border=0 cellspacing="1" id="testTbl" style="font-size:14px;" > 
<tr bgcolor="#FFEFD5"> 
<td width=6%><input type=checkbox id="box1"></td> 
<td >第1行</td> 
<td > </td> 
</tr> 
</table> 
<label> 
<input type="button" value="插入行" onclick="addRow()" /> 
</label> 
</body> 
</html>

5、appendChild()方法

<html> 
<head> 
<title>My Test Page</title> 
<script type="text/javascript"> 
<!-- 
var textNumber = 1; 
function addTextBox(form, afterElement) { 
// Increment the textbox number 
textNumber++; 
// Create the label 
var label = document.createElement("label"); 
// Create the textbox 
var textField = document.createElement("input"); 
textField.setAttribute("type","text"); 
textField.setAttribute("name","txt"+textNumber); 
textField.setAttribute("id","txt"+textNumber); 
// Add the label's text 
label.appendChild(document.createTextNode("Text Box #"+textNumber+": ")); 
// Put the textbox inside 
label.appendChild(textField); 
// Add it all to the form 
form.insertBefore(label,afterElement); 
return false; 
} 
function removeTextBox(form) { 
if (textNumber > 1) { // If there's more than one text box 
    // Remove the last one added 
    form.removeChild(document.getElementById("txt"+textNumber).parentNode); 
    textNumber--; 
} 
} 
//--> 
</script> 
<style type="text/css"> 
<!-- 
label { 
display:block; 
margin:.25em 0em; 
} 
--> 
</style> 
</head> 
<body> 
<form id="myForm" method="get" action="./" /> 
<label>Text Box #1: <input type="text" name="txt1" id="txt1" /></label> 
<p> 
    <input type="button" value="Add Textbox" onclick="addTextBox(this.form,this.parentNode)" /> 
    <input type="button" value="Remove Textbox" onclick="removeTextBox(this.form)" /> 
</p> 
<p><input type="Submit" value="Submit" /></p> 
</form> 
</body> 
</html>
<html> 
<head> 
<title>My Test Page</title> 
<script type="text/javascript"> 
<!-- 
var textNumber = 1; 
function addTextBox(form, afterElement) { 
// Increment the textbox number 
textNumber++; 
// Create the label 
var label = document.createElement("label"); 
// Create the textbox 
var textField = document.createElement("input"); 
textField.setAttribute("type","text"); 
textField.setAttribute("name","txt"+textNumber); 
textField.setAttribute("id","txt"+textNumber); 
// Add the label's text 
label.appendChild(document.createTextNode("Text Box #"+textNumber+": ")); 
// Put the textbox inside 
label.appendChild(textField); 
// Add it all to the form 
form.insertBefore(label,afterElement); 
return false; 
} 
function removeTextBox(form) { 
if (textNumber > 1) { // If there's more than one text box 
    // Remove the last one added 
    form.removeChild(document.getElementById("txt"+textNumber).parentNode); 
    textNumber--; 
} 
} 
//--> 
</script> 
<style type="text/css"> 
<!-- 
label { 
display:block; 
margin:.25em 0em; 
} 
--> 
</style> 
</head> 
<body> 
<form id="myForm" method="get" action="./" /> 
<label>Text Box #1: <input type="text" name="txt1" id="txt1" /></label> 
<p> 
    <input type="button" value="Add Textbox" onclick="addTextBox(this.form,this.parentNode)" /> 
    <input type="button" value="Remove Textbox" onclick="removeTextBox(this.form)" /> 
</p> 
<p><input type="Submit" value="Submit" /></p> 
</form> 
</body> 
</html>
Javascript 相关文章推荐
从新浪弄下来的全屏广告代码 与使用说明
Mar 15 Javascript
一段效率很高的for循环语句使用方法
Aug 13 Javascript
js点击事件链接的问题解决
Apr 25 Javascript
Javascript 中创建自定义对象的方法汇总
Dec 04 Javascript
node爬取微博的数据的简单封装库nodeweibo使用指南
Jan 02 Javascript
jquery插件NProgress.js制作网页加载进度条
Jun 05 Javascript
jQuery对checkbox 复选框的全选全不选反选的操作
Aug 09 Javascript
Angular2 组件间通过@Input @Output通讯示例
Aug 24 Javascript
vue router 配置路由的方法
Jul 26 Javascript
用vue-cli开发vue时的代理设置方法
Sep 20 Javascript
详解Vue 匿名、具名和作用域插槽的使用方法
Apr 22 Javascript
简单使用webpack打包文件的实现
Oct 29 Javascript
javascript修改表格背景色实例代码分享
Dec 10 #Javascript
jquery全选checkBox功能实现代码(取消全选功能)
Dec 10 #Javascript
javascript中文本框中输入法切换的问题
Dec 10 #Javascript
javascript 数字格式化输出的实现代码
Dec 10 #Javascript
多个jquery.datatable共存,checkbox全选异常的快速解决方法
Dec 10 #Javascript
js输入框邮箱自动提示功能代码实现
Dec 10 #Javascript
浅析jQuery1.8的几个小变化
Dec 10 #Javascript
You might like
浅析php fwrite写入txt文件的时候用 \r\n不能换行的问题
2013/08/06 PHP
Zend Framework+smarty用法实例详解
2016/03/19 PHP
PHP.vs.JAVA
2016/04/29 PHP
ThinkPHP打水印及设置水印位置的方法
2016/10/14 PHP
childNodes.length与children.length的区别
2009/05/14 Javascript
为指定元素增加样式的js代码
2009/12/09 Javascript
Extjs学习笔记之一 初识Extjs之MessageBox
2010/01/07 Javascript
jQuery循环滚动展示代码 可应用到文字和图片上
2012/05/11 Javascript
javascript中获取下个月一号,是星期几
2012/06/01 Javascript
原生JS可拖动弹窗效果实例代码
2013/11/09 Javascript
js验证IP及子网掩码的合法性有效性示例
2014/04/30 Javascript
JavaScript通过事件代理高亮显示表格行的方法
2015/05/27 Javascript
基于Jquery代码实现支持PC端手机端幻灯片代码
2015/11/17 Javascript
axios进阶实践之利用最优雅的方式写ajax请求
2017/12/20 Javascript
vue2过滤器模糊查询方法
2018/09/16 Javascript
element-ui upload组件多文件上传的示例代码
2018/10/17 Javascript
聊聊Vue中provide/inject的应用详解
2019/11/10 Javascript
详解Webpack抽离第三方类库以及common解决方案
2020/03/30 Javascript
使用JavaScript获取扫码枪扫描得到的条形码的思路代码详解
2020/06/10 Javascript
js实现简单扫雷
2020/11/27 Javascript
vue组件添加事件@click.native操作
2020/10/30 Javascript
python实现解数独程序代码
2017/04/12 Python
Django如何使用第三方服务发送电子邮件
2019/08/14 Python
numpy ndarray 按条件筛选数组,关联筛选的例子
2019/11/26 Python
Python开发之基于模板匹配的信用卡数字识别功能
2020/01/13 Python
Python字符串及文本模式方法详解
2020/09/10 Python
python爬虫爬取网页数据并解析数据
2020/09/18 Python
德国珠宝和手表在线商店:VALMANO
2019/03/24 全球购物
装修设计师求职信
2014/02/26 职场文书
人民检察院起诉书
2015/05/20 职场文书
2015年电教工作总结
2015/05/26 职场文书
2016抗战胜利71周年红领巾广播稿
2015/12/18 职场文书
靠谱准确的求职信
2019/04/02 职场文书
漫画「日和酱的要求是绝对的」第3卷封面公开
2022/03/21 日漫
多人盗宝《绿林侠盗》第三赛季4.5上线 跨平台实装
2022/04/03 其他游戏
JavaScript中10个Reduce常用场景技巧
2022/06/21 Javascript