JS动态添加行列

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Add-Delete Row.aspx.cs" Inherits="Add_Delete_Row" %>

<!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 runat="server">
    <title></title>
    <style type="text/css">
        #Add{ margin:0px auto;}
        #tab{ border-collapse:collapse; text-align:center; margin:0 auto;}
        #tab td{ border:1px solid #000000;}
        #tr1{ font-family:@华文仿宋; color:Red;}
    </style>
    <script type="text/javascript">
        function findObj(theObj, theDoc) {
            var p, i, foundObj;
            if (!theDoc) theDoc = document;
            if ((p = theObj.indexOf("?")) > 0 && parent.frames.length)
            { theDoc = parent.frames[theObj.substring(p + 1)].document; theObj = theObj.substring(0, p); } if (!(foundObj = theDoc[theObj]) && theDoc.all) foundObj = theDoc.all[theObj]; for (i = 0; !foundObj && i < theDoc.forms.length; i++) foundObj = theDoc.forms[i][theObj]; for (i = 0; !foundObj && theDoc.layers && i < theDoc.layers.length; i++) foundObj = findObj(theObj, theDoc.layers[i].document); if (!foundObj && document.getElementById) foundObj = document.getElementById(theObj); return foundObj;
        }
        function addRow() {
            //读取添加一行的行号,存放在txtIndex文本框中
            var txtIndex = findObj("txtIndex", document);
            var rowID = parseInt(txtIndex.value);
            //alert(rowID);
            //添加一行
            var signFrame = findObj("tab", document);
            //添加行
            var newTR = signFrame.insertRow(signFrame.rows.length);
            newTR.id = "SignItem" + rowID; //添加行数的ID

            //添加列
            var NewTd1 = newTR.insertCell(0);
            NewTd1.style.width = 200;
            var NewTd2 = newTR.insertCell(1);
            NewTd2.style.width = 190;
            var NewTd3 = newTR.insertCell(2);
            NewTd3.style.width = 210;
            var NewTd4 = newTR.insertCell(3);
            NewTd4.style.width = 40;
            //设置列的内容及属性
            NewTd1.innerHTML = "<input type = ‘text‘ style = ‘ width:170px; text-align:center; border:0px;‘ id = ‘txt " + rowID + "‘ />";
            NewTd2.innerHTML = "<input type = ‘text‘ style = ‘ width:160px; text-align:center; border:0px;‘ id = ‘txt " + rowID + "‘ />";
            NewTd3.innerHTML = "<input type = ‘text‘ style = ‘ width:170px; text-align:center; border:0px;‘ id = ‘txt " + rowID + "‘ />";
            NewTd4.innerHTML = "<a style = ‘ text-decoration:none;‘ href = ‘#‘ onclick = \"DeleteSignRow(‘SignItem" + rowID + "‘)\">删除</a>";
            //将行号推进到下一行
            txtIndex.value = (rowID + 1).toString();
        }
        //删除指定行
        function DeleteSignRow(rowid) {
            var signFrame = findObj("tab", document);
            var signItem = findObj(rowid, document);

            //获取将要删除的行的Index
            var rowIndex = signItem.rowIndex;
            //alert(rowIndex);
            //删除指定Index的行
            signFrame.deleteRow(rowIndex);

            //重新排列序号,如果没有序号,这一步省略
//            for (i = rowIndex; i < signFrame.rows.length; i++) {
//                signFrame.rows[i].cells[0].innerHTML = i.toString();
//            }
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div style = " width:640px; margin:0 auto;" id = "dv">
    <input type="button" id="Add" value="添加一行" onclick = "addRow()" />
        <input name=‘txtIndex‘ type=‘hidden‘ id=‘txtIndex‘ value="4" />
    <br />
    </div>
    <table width = "640" cellpadding="0" cellspacing="0" id = "tab">
        <tr>
            <td>
                姓名
            </td>
            <td colspan = "3">

            </td>
        </tr>
        <tr id = "tr1">
            <td style = " width:200px;">姓名</td>
            <td style = " width:190px">邮箱</td>
            <td style = " width:210px">投标内容</td>
            <td style = " width:40px"></td>
        </tr>
        <tr>
            <td>性别</td>
            <td colspan = "3">

            </td>
        </tr>
    </table>
    </form>
</body>
</html>

时间: 2024-10-23 14:31:23

JS动态添加行列的相关文章

【原生js】js动态添加dom,如何绑定事件

首先要明白浏览器在加载页面的时候是按顺序来加载的,这样以来就很清楚了,js动态添加dom以后,这些dom并没有绑定事件,这个时候最简单的一个办法就是:将绑定事件的方法封装到一个函数A中,在动态添加完dom以后立即执行一次函数A即可. 需要注意的是,在你可能同事需要添加许多的dom,不要添加一个就执行一次函数A,这样会增加浏览器的负载,你需要在所有dom添加完以后在执行函数A,例如你用一个for循环遍历dom组合并拼接成一个字符串,然后添加到某个父级dom里面,这个时候你需要在循环外添加一次就可以

每天都有新发现——如何优雅的用js动态添加html代码

body { font-family: 微软雅黑,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif; font-size: 10.5pt; line-height: 1.5; } html, body { } h1 { font-size:1.5em; font-weight:bold; } h2 { font-size:1.4em; font-weight:bold; } h3 { fon

form表单 无法提交js动态添加的表单元素问题。。

第一种情况, 这种情况js动态添加的表单元素是不能提交到服务器端的 <table> <form method="post" action=" url  "> <tr><td></td><td></td></tr> <tr><td></td><td></td></tr> </form> &l

js动态添加file控件

<html></head><script language="javascript" type="text/ecmascript">//======================//功能:在表单中input file控件//参数:parentID---要插入input file控件的父元素ID// inputID----input file控件的ID//======================function createI

MUI 里js动态添加数字输入框后,增加、减少按钮无效

numbox 的自动初化是在 mui.ready 时完成的mui 页面默认会自动初始化页面中的所有数字输入框,动态构造的 DOM 需要进行手动初始化.比如:您动态创建了一个 ID 为 abc 的数字输入框,需要 mui('#abc').numbox() 初始化一下. 为什么 test() 放在 mui.plusReady 外边可以,而放在里边就不可以?这是因为 numbox 的自动初化是在 mui.ready 时完成的,直接在外部的 test() 执行发生在 mui.ready 之前,而写在 m

JS动态添加到下拉列表数据

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>JS动态添加删除表格数据</title></head><body><script type="text/javascript"> function f() { var provinceName=docume

Js动态添加复选框Checkbox的实例方法!!!

首先,使用JS动态产生Checkbox可以采用如下类似的语句: var checkBox=document.createElement("input"); checkBox.setAttribute("type","checkbox"); checkBox.setAttribute("id",'123456'); 但是,这样产生的checkbox是不带尾后的文字的,如果需要添加,那么需要使用 document.createTe

js动态添加事件-事件委托

作者:白狼 出处:http://www.manks.top/javascript-dynamic-event.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利. 其所谓的动态添加事件实质就是指js中的事件委托. 我们知道在js中,事件处理只能绑定在当前被选中的元素上,换句话也就是说,事件处理只能绑定在当前文档已经存在的元素上!但是,往往小伙伴们都会遇到一个问题就是,我的元素是后来动态添加到页面的,而我又想给该元素绑定

js动态添加对象

js的数组,字符串,对象操作是实现一些功能不可缺少的部分. 一般情况下js的数组和字符串动态加起来比较方便,都有自己提供的方法,数组的push(),字符串直接用加号等.但是js对象动态添加就需要一点工作了 下面我写了两种动态添加对象的方法 第一种 function toObj1(key,val){ var data = {}; data[key] = val; return data; } var obj1 = toObj1('name','nurdun'); console.log(obj1)