`
fly533
  • 浏览: 107945 次
  • 性别: Icon_minigender_1
  • 来自: 广西
社区版块
存档分类
最新评论

js添加行删除行,遍历table

阅读更多
//需求:js实现多条记录的更新
//1、从页面的表格A中,选择商品添加到表格B中,
//2、表格B中,对应每条商品,输入数量。
//3、表格B中的商品不能重复,可以删除。
//4、能同时传入后台,更新到数据库
//5、或传入其他页面,并显示出来。
//js通过添加表的一行,删除一行。遍历表结构等方法实现
//可修改为其他功能:
//多条记录同时修改并且更新到数据库

<html>
<script language="JavaScript">
var i=0;//行的id 
var num;
var tdname;
var unit; 
var list= new Array(); 
var numList=new Array();
var flag=true;

function addRow(){//添加行
 var table=document.getElementById("table");
 var length=table.rows.length; 
 var tr=document.createElement("tr"); 
 tr.id=++i;
  
 var td0=document.createElement("td");
 td0.innerHTML="<input type=\"text\" value=\""+num+"\"/>";//不用文本框下面取不出来。 (因遍历的方式需要不带文本框)
 tr.appendChild(td0); 
 
 var td1=document.createElement("td");
 tdname="第"+i+"行 "+tdname;
 td1.innerHTML="<input type=\"text\" value=\""+tdname+"\" name=\"name\" id=\"name\"/>";
 tr.appendChild(td1);
     
	var td2=document.createElement("td");
	td2.innerHTML="<input type=\"text\" value=\""+unit+"\" name=\"unit\"/>";   
	tr.appendChild(td2);
	 
	var td3=document.createElement("td"); 
	//td3.id=tr.id; 
	td3.innerHTML="<input type=\"button\" value=\"del\" onclick=\"del(this.parentElement.parentElement,this.parentElement.parentElement.id)\"/>";   
	tr.appendChild(td3);   
	
	addData(i);//含数据验证 
	if(flag==true){ 
	document.getElementById("newbody").appendChild (tr); 
	}else{ 
	i--; 
	} 
} 

function del(src,index){ 
	var tr=document.getElementById(index); 
	tr.parentNode.removeChild(tr); 
	delData(index); 
} 

function addData(rid){ 
	flag=true; 
	for(var i=0;i<=numList.length;i++){
		if(num==numList[i]){ 
			flag=false; 
 			alert("该名称您已经添加!请查看已添加的列表。"); 
 		} 
 	} 
	if(flag==true){ 
 		numList[numList.length]=num; 
 		var str="{"+num+","+tdname+","+unit+"}"; 
 		list[rid]=str; 
 	} 
 }
  
function delData(rid){ list[rid]=""; }

function getList(){ 
	var jsonStr="{check:["; 
	var showStr="{ID&nbsp;&nbsp;&nbsp;&nbsp;名称&nbsp;&nbsp;&nbsp;&nbsp;单位}<br>" 
	var s=""; 
	for(var i=0;i<=list.length;i++){ 
		s=list[i]; 
		if(s!=""){ 
			if(s!=undefined){ 
				jsonStr+=list[i]+","; 
				showStr+=list[i]+"<br>"; 
			} 
		} 
	} 
	jsonStr=jsonStr.substring(0,jsonStr.length-1);
	jsonStr+="]}"; 
	//alert("结果:"+jsonStr); 
	var contain=document.getElementById("div1"); 
	contain.innerHTML=jsonStr+"<br>"+showStr; 
}

function getTable(){ 
	var tableObj = document.getElementById("table"); 
	//alert(tableObj.rows.length+"/"+tableObj.rows[0].cells.length+"/"+tableObj.rows[0].cells[0].children.length); 
	//alert(tableObj.rows[1].cells[0].children[0].value); 
	var str = "<table border=\"1\"><tr><td>ID</td><td>名称</td><td>单位</td></tr>"; 
	for(var i=0;i<tableObj.rows.length;i++){//行 
		str+="<tr>"; 
		for(var j=0;j<tableObj.rows[i].cells.length-1;j++){//列 
			for(var z=0;z<tableObj.rows[i].cells[j].children.length;z++){ 
				var text = tableObj.rows[i].cells[j].children[z];//取得text object 
				str +="<td>"+text.value+"</td>"; 
			} 
		} str+="</tr>"; 
	} 
	str+="</table>"; 
	//alert(str); 
	var contain=document.getElementById("div2"); 
	contain.innerHTML=str; 
	
	// var ob=document.getElementById("tb2").getElementsByTagName("input"); 
	// for(var j=0;j<ob.length;j++) 
	// { 
	// if(ob[j].type=="text") 
	// { 
	// jx+=j; 
	// } 
	//} 
}



function set(){ //该方法有问题。 
	var a=""; 
	//alert(document.getElementById(name)); 
	alert(document.find.name.length); 
	for(var i=0;i<document.find.name.length;i++){ 
		a+=document.find.name[i].value; 
		a=a+":"+document.find.unit[i].value+"/"; 
	} 
	//window.opener.document.getElementById("unit").value=uu; 
	alert("打印结果:"+a); 
	//window.close(); 
}
</script>
<BODY> 
<form method="post" action="" name="find"> 
	<table id="table" border="1"> 
	<tr><td>ID</td><td>名称</td><td>单位</td> <td>删除</td> </tr>
 	<tbody id="newbody"></tbody>
	</table>
</form> 

<input type="button" onClick="getList()" value="getList"/> 
<input type="button" onClick="getTable()" value="getTable"/>
<div id="div1"></div>
<div id="div2"></div>
  
<table border="1" id="t1"> 
	<tr > <td>数据项</td> </tr> 
	<tr onMouseDown=" 
		num=this.cells.item(0).innerHTML; 
		tdname=this.cells.item(1).innerHTML; 
		unit=this.cells.item(2).innerHTML;" >
 <td>1</td><td>name1</td><td>unit1</td> 
 <td><input type="button" onClick="addRow()" value="addRow"/></td> </tr> 
	<tr onMouseDown=" 
		num=this.cells.item(0).innerHTML; 
 		tdname=this.cells.item(1).innerHTML; 
 		unit=this.cells.item(2).innerHTML;" > 
 <td>2</td><td>name2</td><td>unit2</td> 
 <td><input type="button" onClick="addRow()" value="addRow"/></td> </tr>
</table>
</BODY>
</html>
分享到:
评论

相关推荐

    js动态添加表格逐行添加、删除、遍历取值的实例代码

    最近做项目遇到这样的需求,要求表格添加一行,表格删除一行,表格遍历取值等。下面小编给大家带来了js动态添加表格逐行添加、删除、遍历取值的实例代码,需要的朋友参考下

    HS_Table.js哈希表模拟哈希表

    使用js模拟出哈希表的功能.使用非常方便.功能包括添加,删除,查询,遍历,修改,统计等.弄了很久才弄好的哦.

    JavaScript动态生成表格案例

    然后获取了表格元素及其 tbody 元素,通过 for 循环遍历数组中的每个学生,动态创建了表格的每一行和每个单元格,并将学生的信息填充到对应的单元格中。 最后,为每行的删除操作添加了点击事件处理程序。当用户单击...

    程序天下:JavaScript实例自学手册

    9.9 JavaScript遍历table的行和列 9.10 表格按回车自动生成新行 9.11 单击单元格背景变色 9.12 单击表格某行后其他行隐藏 9.13 单击表头实现表格排序 9.14 单击单元格显示行的详细信息 9.15 表格设置为“100%”时...

    《程序天下:JavaScript实例自学手册》光盘源码

    9.9 JavaScript遍历table的行和列 9.10 表格按回车自动生成新行 9.11 单击单元格背景变色 9.12 单击表格某行后其他行隐藏 9.13 单击表头实现表格排序 9.14 单击单元格显示行的详细信息 9.15 表格设置为“100%”时...

    JavaScript王者归来part.1 总数2

     12.6 读写数据--添加、修改和删除属性   12.7 外观与行为   12.7.1 DOM样式属性   12.7.2 控制DOM元素的显示与隐藏   12.7.3 改变颜色和大小--一个简单有趣的例子   12.7.4 改变位置--创建一个绕圆圈...

    JavaScript笔记

    JavaScript:定义行为和动作 (基于对象和事件驱动的客户端脚本语言;也是一种广泛应用于客户端Web开发的脚本语言) 基于对象:网页中的一切元素都是假象!不需要new,即可直接使用 事件驱动:JavaScript的执行都是...

    正则表达式经典实例.pdf

    8.7 向不包含cellspacing属性的 table标签中添加该属性 8.8 删除XML风格的注释 8.9 在XML风格的注释中查找单词 8.10 替换在CSV文件中使用的分隔符 8.11 抽取某个特定列中的CSV域 8.12 匹配INI段头 8.13 匹配INI段块 ...

    正则表达式经典实例

    8.7 向不包含cellspacing属性的 table标签中添加该属性 8.8 删除XML风格的注释 8.9 在XML风格的注释中查找单词 8.10 替换在CSV文件中使用的分隔符 8.11 抽取某个特定列中的CSV域 8.12 匹配INI段头 8.13 匹配...

    jquery插件使用方法大全

    第二行代码得到class 为container的div元素,第三行代码得到标签下面id为msg的div元素(不过最好别这样写,因为jQuery需要遍历所有的div元素,对于带id的元素,直接用$("#id"))。第四行代码得到context为上下文的table...

    jQuery详细教程

    &lt;script type="text/javascript" src="/jquery/jquery.js"&gt; &lt;script type="text/javascript"&gt; $(document).ready(function(){ $("p").click(function(){ $(this).hide(); }); }); &lt;p&gt;If you click on me, I ...

    出现问题a is defined高手帮忙

    &lt;script type="text/javascript"&gt; //实现框选放大缩小功能 function DragZoomControl(opts_boxStyle, opts_other, opts_callbacks) { this.globals = { draggingOn: false, cornerTopDiv: null, ...

    JavaScript高级教程

    第 1 章 JavaScript 是什么...............................................1 3 1.1 历史简述..............................................1 1.2 JavaScript 实现................................................

    cms后台管理

    6.将服务器上jeecms项目删掉,发布新建的jeecms项目。 三 首页的加载过程 在浏览器中输入http://localhost:8080/jeecms,回车 首先进入配置文件web.xml, &lt;context-param&gt; &lt;param-name&gt;contextConfigLocation...

    asp.net知识库

    体验.net2.0的优雅(3) -- 为您的 SiteMap 添加 控制转发功能 GridView控件使用经验 ASP.NET 2.0:弃用 DataGrid 吧,有新的网格控件了! ASP.NET2.0控件一览---标准控件(1) ASP.NET2.0控件一览---标准控件(2) ASP...

    JAVA上百实例源码以及开源项目源代码

     util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...

    JAVA上百实例源码以及开源项目

     util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...

    Java学习笔记-个人整理的

    \contentsline {chapter}{Contents}{2}{section*.1} {1}Java基础}{17}{chapter.1} {1.1}基本语法}{17}{section.1.1} {1.2}数字表达方式}{17}{section.1.2} {1.3}补码}{19}{section.1.3} {1.3.1}总结}{23}{...

Global site tag (gtag.js) - Google Analytics