`
leyoo
  • 浏览: 43638 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

js添加行删除行,遍历table<转载自fly533>

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

Html代码
<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>";   
            }   
        }   
    }   
    jsonStrjsonStr=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;   
        aa=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> 

<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>
分享到:
评论

相关推荐

    FreeMarker 遍历list

    NULL 博文链接:https://jsjxqjy.iteye.com/blog/2072705

    webfrom- 遍历html生成table.pdf

    &lt;table border="1" cellpadding="0" cellspacing="0" width="80%"&gt; &lt;tr&gt; &lt;td class="category" align="center"&gt; 序号 &lt;/td&gt; &lt;td class="category" align="center"&gt; 业务类型 &lt;/td&gt; &lt;td class="category" ...

    怎样遍历一个HashMap?

    可以通过2种方法遍历HashMap&lt;br&gt;&lt;br&gt;Map map = new HashMap();&lt;br&gt;&lt;br&gt;for (Iterator iter = map.entrySet().iterator(); iter.hasNext();) {&lt;br&gt;&lt;br&gt; Map.Entry entry = (Map.Entry) iter.next();&lt;br&gt;&lt;br&gt; Object ...

    Javascript遍历table中的元素示例代码

     &lt;tr&gt;&lt;th&gt; &lt;/th&gt;&lt;th&gt; &lt;/th&gt;&lt;th&gt; &lt;/th&gt;&lt;th&gt; &lt;/th&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;/tr&gt; &lt;/table&gt; 而在JS中如何遍历赋值呢...

    Struts迭代器(iterator)遍历List常用的4种例子

    相反,显示的数据表格行和列不确定,此时用实体类(UserEntity)迭代的方式很难实现,只能用List&lt;String&gt;或List&lt;List&lt;String&gt;&gt;实现了。 运行效果及代码解释请参考我的博客园:...

    JavaScript遍历table的行和列

    JavaScript遍历table的行和列 JavaScript遍历table的行和列

    js 实现 JavaScript遍历table的行和列

    js 实现 JavaScript遍历table的行和列! 值得下载看看!资源免费,大家分享!!

    c# 遍历xml文件

    &lt;FileSystem&gt; &lt; DriverC &gt; &lt;Dir DirName=”MSDOS622”&gt; &lt;File FileName =” Command.com” &gt;&lt;/File&gt; &lt;/Dir&gt; &lt;File FileName =”MSDOS.SYS” &gt;&lt;/File&gt; &lt;File FileName =” IO.SYS” &gt;&lt;/File&gt; &lt;/DriverC&gt; &lt; ...

    JS遍历ul下的li点击弹出li的索引的实现方法

    &lt;li&gt;a&lt;/li&gt; &lt;li&gt;a&lt;/li&gt; &lt;li&gt;a&lt;/li&gt; &lt;li&gt;a&lt;/li&gt; &lt;li&gt;a&lt;/li&gt; &lt;/ul&gt; &lt;/div&gt; 我们遍历ul 下所有的li 并添加点击事件,一般我们会在for循环里面添加点击事件,但是结果和我们所期盼不一样,那么是为什么呢???? 接...

    Freemarker中遍历list集合实例

    Freemarker中遍历list集合实例

    图遍历的演示

    &lt;br&gt;2、实现连通和非连通的无向图的深度优先和广度优先遍历;&lt;br&gt;3、要求利用栈实现无向图的深度优先遍历;&lt;br&gt;4、以用户指定的结点为起点,分别输出每种遍历下的结点访问序列和生成树的边集;&lt;br&gt;5、用凹入表打印...

    jq遍历table切换

    利用jq遍历制作的简单的table切换效果,利用此资源可以在比较大的需要table切换效果时减少jq代码,以此来优化界面。

    JavaScript遍历table表格中的某行某列并打印其值

    JavaScript遍历table 1、说明 遍历表格中的某行某列,并打印其值 2、实现源码 &lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt; &...

    浅析vue中常见循环遍历指令的使用 v-for

    vue中循环遍历使用的指令是v-for 1.v-for遍历数组 (1)value in arr 遍历数组中的元素 ... &lt;li v-for=value&gt;{{value}}&lt;/li&gt;&lt;br&gt;  &lt;li v-for=(value,index)&gt;{{value}}--{{index}}&lt;/li&gt; &lt;/ul&gt; &lt;/div&gt; [removed]&lt;/s

    Javascript遍历Html Table示例(包括内容和属性值)

    1: 遍历并输出Table中值 &lt;table id=tb&gt; &lt;tr&gt; &lt;td&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; function f() { var t=document.getElementById(tb).childNodes.item(0); for(var i=0;i&lt; t.childNodes.length;i++)...

    JS与jQuery遍历Table所有单元格内容的方法

    本文实例讲述了JS与jQuery遍历Table所有单元格内容的方法。分享给大家供大家参考,具体如下: 用JS去遍历Table的所有单元格中的内容,可以用如下JS代码实现: function GetInfoFromTable(tableid) { var tableInfo...

    js遍历获取表格内数据的方法(必看)

    table表示表格,tr表示行,td表示行中列。 1、一般的表格结构如下 &lt;table&gt; &lt;tr&gt; &lt;td&gt;id&lt;/td&gt; &lt;td&gt;name&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;1&lt;/td&gt; &lt;td&gt;fdipzone&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;2&lt;/td&gt; &lt;td&gt;wing&lt;/td&gt; &lt;/tr&gt; &lt;/...

    JS使用for循环遍历Table的所有单元格内容

    JS遍历Table的所有单元格内容思路是遍历Table的所有Row,遍历Row中的每一列,获取Table中单元格的内容 function GetInfoFromTable(tableid) { var tableInfo = ""; var tableObj = document.getElementById(table...

    javascrip上百技术总集

    外一篇&lt;br&gt;用javascript改变onclick调用的函数&lt;br&gt;用JavaScript加密保护网站...javascript怎样实现图片模糊效果&lt;br&gt;《ExtJS2.0实用简明教程》之Border区域布局&lt;br&gt;《ExtJS2.0实用简明教程》之Ext类库简介&lt;br&gt;《ExtJS2.0...

    二叉树遍历

    一,需求分析&lt;br&gt;1,首先运用递归方法建立一棵链表存储二叉树;&lt;br&gt;2,以先序次序输入二叉树中节点的值(一个字符);&lt;br&gt;3,采用二叉树的链表存储结构,借助堆栈建立二叉树的先序,中序,后序遍历;&lt;br&gt;4,须借助...

Global site tag (gtag.js) - Google Analytics