`
53873039oycg
  • 浏览: 842108 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

jQuery动态新增tr示例

 
阅读更多

       下面的例子使用jQuery动态在table中新增tr,删除tr,具体请看代码。代码如下

       

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jquery 动态新增tr</title>
<style>
* {
	margin: 0px;
	padding: 0px;
	margin: 0 auto;
	font-size: 15px;
}

#infoDiv {
	margin-top: 10px;
	width: 900px;
	border-top: 1px solid #79B2F1;
	border-bottom: none;
}

#infoDiv table {
	margin-top: 10px;
}

#infoDiv table td {
	padding: 4px 6px;
	text-align: left;
}

#submitDiv span {
	color: #fff;
	background: #89D900;
	height: 25px;
	width: 100px;
	display: block;
	line-height: 25px;
	font-weight: bold;
	text-align: center;
	margin: 0 auto;
}

#submitDiv a {
	text-decoration: none;
}

#disDiv {
	margin-top: 10px;
	width: 900px;
}

#disDiv table {
	margin-top: 10px;
	border-collapse: collapse;
	margin-bottom: 10px;
}

#disDiv table thead {
	height: 30px;
	line-height: 30px;
	background: #F4F4F4;
}

#infoDetail td {
	text-align: center;
	padding: 4px 6px;
	border-bottom: 1px solid #e6e6e6;
}

#infoDetail td a {
	text-decoration: none;
}

.fixWidth {
	width: 110px;
}

#resultDiv {
	margin-top: 10px;
	width: 900px;
	border: 1px solid #E6E6E6;
	padding: 10px;
	display: none;
}
</style>
<script type="text/javascript" src="../../js/jquery-2.1.0.js"></script>
<script type="text/javascript" src="../../js/wdatepicker/WdatePicker.js"></script>
<script>
        function delRow(obj, num) {
		if (num == 1) {
			$(obj).parent().parent().remove();
		} else if (num > 1) {
			var o = $(obj).parent().parent();
			var ary = new Array();
			for (var i = 0; i < num; i++) {
				ary[i] = o;
				o = o.next("tr");
			}
			for (var i = 0; i < num; i++) {
				ary[i].remove();
			}
		}
	}
	function onSelectChange(obj) {
		var varSelect = $.trim($(obj).val());
		if (varSelect == '') {
			return false;
		}
		var subSelect = $(obj).parent().next().children("select");
		var varHtml = '';
		if (varSelect == 1) {
			varHtml += '<option value="11">北京2</option><option value="12">北京3</option><option value="13">北京4</option>';
		} else if (varSelect == 2) {
			varHtml += '<option value="21">天津2</option><option value="22">天津3</option><option value="23">天津4</option>';
		} else if (varSelect == 3) {
			varHtml += '<option value="31">河北2</option><option value="32">河北3</option><option value="33">河北4</option>';
		}
		subSelect.html(varHtml);
	}

	function generateHtml(varNum) {
		var varHtml = '';
		if (varNum == 1) {
			varHtml = '<tr><td><a href="javascript:;" onclick="delRow(this,1)">删除</a></td><td><select onchange="onSelectChange(this);" class="fixWidth"><option value="">所有</option><option value="1">北京</option><option value="2">天津</option><option value="3">河北</option></select></td><td><select class="fixWidth"><option value="">所有</option></select></td><td><input type="text"></td><td><input type="text"></td><td><input type="text"></td></tr>';
		} else {
			varHtml = '<tr><td style="vertical-align: middle" rowspan="';
			varHtml+=varNum;
			varHtml+='"><a href="javascript:;" onclick="delRow(this,';
			varHtml += varNum;
			varHtml += ')">删除</a></td><td style="vertical-align: middle" rowspan="';
			varHtml+=varNum;
			varHtml+='"><select onchange="onSelectChange(this);" class="fixWidth"><option value="">所有</option><option value="1">北京</option><option value="2">天津</option><option value="3">河北</option></select></td><td style="vertical-align: middle" rowspan="';
			varHtml+=varNum;
			varHtml+='"><select class="fixWidth"><option value="">所有</option></select></td><td><input type="text"></td><td><input type="text"></td><td><input type="text"></td></tr>"';
			for (var i = 1; i < varNum; i++) {
				varHtml += '<tr><td><input type="text"></td><td><input type="text"></td><td><input type="text"></td></tr>';
			}
		}
		$("#infoDetail").append(varHtml);
	}
	$(function() {
		var varDate = new Date();
		var varYear = varDate.getFullYear();
		var varMon = varDate.getMonth() + 1;
		var varDay = varDate.getDate();
		if (varMon < 10) {
			varMon = "0" + varMon;
		}
		$('#v_doneDate').val(varYear + "-" + varMon + "-" + varDay);
		$('#submitForm').on('click', function() {
			$('#resultDiv').css("display","none");
			var varNumTmp = $.trim($('#v_num').val());
			varNum = parseInt(varNumTmp);
			if (isNaN(varNum) || varNum < 1) {
				return false;
			}
			generateHtml(varNum);
		});
		$("#v_num").focus(function() {
			var varNum = $(this).val();
			if (varNum == this.defaultValue) {
				$(this).val("");
			}
		})
		$("#v_num").blur(function() {
			var varNum = $(this).val();
			if (varNum == "") {
				$(this).val(this.defaultValue);
			} else {
				varNum = parseInt(varNum);
				if (isNaN(varNum) || varNum < 1) {
					return false;
				}
				generateHtml(varNum);
			}
		})
		$('#submitBtn').on(
				'click',
				function() {
					var varInfo = "[{'v_id':'" + $.trim($("#v_id").val())
							+ "','v_cname':'" + $.trim($("#v_cname").val())
							+ "','v_pname':'" + $.trim($("#v_pname").val())
							+ "','v_startDate':'"
							+ $.trim($("#v_startDate").val())
							+ "','v_doneDate':'"
							+ $.trim($("#v_doneDate").val()) + "'}],";
					varInfo += "[";
					var infoDtl = $("#infoDetail");
					var trAll = infoDtl.children("tr");
					var trLen = trAll.length;
					var varRegion = '';
					var varCountry = '';
					var varSaleName = '';
					var varPrice = '';
					var varSalePrice = '';
					for (var i = 0; i < trLen; i++) {
						var tdAll = $(trAll[i]).children("td");
						var tdLen = tdAll.length;
						if (tdLen > 3) {
							varRegion = $.trim($(tdAll[1]).children("select")
									.val());
							varCountry = $.trim($(tdAll[2]).children("select")
									.val());
							varSaleName = $.trim($(tdAll[3]).children("input")
									.val());
							varPrice = $.trim($(tdAll[4]).children("input")
									.val());
							varSalePrice = $.trim($(tdAll[5]).children("input")
									.val());
						} else if (tdLen > 0 && tdLen <= 3) {
							varSaleName = $.trim($(tdAll[0]).children("input")
									.val());
							varPrice = $.trim($(tdAll[1]).children("input")
									.val());
							varSalePrice = $.trim($(tdAll[2]).children("input")
									.val());
						}
						varInfo += "{'varRegion':'" + varRegion
								+ "','varCountry':'" + varCountry
								+ "','varSaleName':'" + varSaleName
								+ "','varPrice':'" + varPrice
								+ "','varSalePrice':'" + varSalePrice + "'},";
					}
					varInfo = varInfo.substring(0, varInfo.length - 1);
					varInfo += "]";
					$('#resultDiv').css("display","block");
					$('#resultDiv').html(varInfo);
				});
	});
</script>
</head>
<body>
	<form id="contentForm" method="post" action="">
		<div id="infoDiv">
			<table border="0" width="100%" cellpadding="0" cellspacing="1">
				<tr>
					<td><label class="label_des" for="v_id">流水编号:</label></td>
					<td><input id="v_id" name="v_id" type="text" maxlength="50"></td>
					<td><label class="label_des" for="v_cname">单位名称:</label></td>
					<td><input id="v_cname" name="v_cname" type="text"
						maxlength="50"></td>
					<td><label class="label_des" for="v_pname">用户姓名:</label></td>
					<td><input id="v_pname" name="v_pname" type="text"
						maxlength="50"></td>
				</tr>
				<tr>
					<td><label class="label_des" for="v_num">明细数量:</label></td>
					<td><input id="v_num" name="v_num" type="text" value="请输入正整数"></td>
					<td><label class="label_des" for="v_startDate">生效时间:</label></td>
					<td><input id="v_startDate" name="v_startDate" type="text"
						class="Wdate"
						onfocus="WdatePicker({minDate:'%y-%M-%d',maxDate:'#F{\'2099-12-31\'}'})"></td>
					<td><label class="label_des" for="v_doneDate">制作日期:</label></td>
					<td><input id="v_doneDate" name="v_doneDate" type="text"
						class="Wdate"
						onfocus="WdatePicker({minDate:'%y-%M-%d',maxDate:'#F{\'2099-12-31\'}'})"></td>
				</tr>
				<tr>
					<td colspan="4"></td>
					<td><div id="submitDiv">
							<a id="submitForm" href="javascript:void(0);"> <span>新增明细列</span></a>
						</div></td>
				</tr>
			</table>
		</div>
		<div id="disDiv">
			<table border="0" width="100%" cellpadding="0" cellspacing="1">
				<colgroup>
					<col width="10%">
					<col width="20%">
					<col width="20%">
					<col width="20%">
					<col width="15%">
					<col width="15%">
				</colgroup>
				<thead>
					<tr>
						<th>操作</th>
						<th>地市</th>
						<th>县市</th>
						<th>营销名称</th>
						<th>原价</th>
						<th>优惠价</th>
					</tr>
				</thead>
				<tbody id="infoDetail">

				</tbody>
			</table>
		</div>
		<div id="submitDiv">
			<a id="submitBtn" href="javascript:void(0);"> <span>提交</span></a>
		</div>
	</form>
	<div id="resultDiv"></div>
</body>
</html>

    运行结果为

   

      在明细数量输入框输入正整数就可看到效果,明细数量是指一行有多少明细,输入1结果为

      

         输入2结果为

        

       提交后结果为

      

      本文系原创,转载请注明出处,谢谢

      全文完

 

  • 大小: 27.4 KB
  • 大小: 30.4 KB
  • 大小: 40.4 KB
  • 大小: 58.5 KB
0
0
分享到:
评论
4 楼 53873039oycg 2014-06-07  
string2020 写道
建议使用jsrender,楼主这样写,可读性太差了。

多谢,我去看下jsrender。
3 楼 string2020 2014-06-07  
建议使用jsrender,楼主这样写,可读性太差了。
2 楼 53873039oycg 2014-06-06  
jackrenming 写道
有很多地方可以优化!

请指教。
1 楼 jackrenming 2014-06-06  
有很多地方可以优化!

相关推荐

    jQuery实现动态添加tr到table的方法

    在本文中,我们将深入探讨如何使用jQuery来动态添加`tr`元素到`table`中,以及如何处理这些新增行的交互。jQuery是一个流行的JavaScript库,它简化了DOM操作,使得在网页上创建动态效果和交互变得更为便捷。 首先,...

    JQuery实现可以动态增加行的报表

    JQuery 是一个广泛使用的 JavaScript 库,它简化了 DOM 操作、事件处理和动画等功能,使得实现动态增加行的报表变得更为简便。下面将详细阐述如何使用 JQuery 实现这一功能。 首先,我们需要创建一个基本的 HTML ...

    jquery案例,为表格动态添加行

    要使用jQuery动态添加行,我们可以先创建一个新的`&lt;tr&gt;`元素,然后在其中填充`&lt;td&gt;`元素,最后将其插入到表格中。以下是一个基本的添加行示例: ```javascript // 创建新行 var newRow = $("&lt;tr&gt;新数据1&lt;/td&gt;&lt;td&gt;新...

    jquery动态添加删除一行数据示例

    本示例主要讲解如何使用jQuery动态地在表格中添加和删除一行数据,这对于构建可交互的用户界面非常有用。 首先,我们来看一下HTML结构。这个示例中有一个表格,包含两列:姓名和地址,每行都有一个删除按钮。表格...

    JQuery实现动态表格点击按钮表格增加一行

    这个示例使用了JQuery的语法风格,并且混合了原生JavaScript来操作DOM。在现代前端开发实践中,会倾向于使用更符合MVC模式的JavaScript框架,如React、Vue或Angular,来处理这种动态内容更新的场景。不过,基本的DOM...

    jQuery向下滚动表格头部固定代码

    在这个场景中,"jQuery向下滚动表格头部固定代码"是指使用jQuery来编写脚本,确保表格的表头在页面滚动时始终保持可见。 要实现这个功能,首先需要在HTML中设置好表格结构,包括thead(表头)和tbody(表格主体)。...

    table的动态新增和删除,非常好用

    1. 动态新增:可以使用JavaScript的DOM操作方法,如`createElement`创建新的表格元素,`appendChild`或`insertBefore`将其插入到合适的位置。以下是一个简单的新增行示例: ```javascript function addRow() { var...

    jQuery实现表格行和列的动态添加与删除方法【测试可用】

    总结一下,这个示例展示了如何使用jQuery进行以下操作: 1. 添加行:通过`addRow()`函数,动态创建新的行模板并将其插入到表格中。 2. 删除行:通过`delRow(_id)`函数,根据指定的ID隐藏对应的行。 3. 添加列:通过`...

    jQuery实现动态添加节点与遍历节点功能示例

    本文实例讲述了jQuery实现动态添加节点与遍历节点功能。分享给大家供大家参考,具体如下: 动态添加节点: &lt;!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN ...

    jquery1.10给新增元素绑定事件的方法

    本文将重点介绍在jQuery 1.10版本中给新增元素绑定事件的方法,特别是旧方法.live()的移除和新方法.on()的引入。 首先,.live()方法在旧版本的jQuery中被广泛使用,用于为动态添加到DOM中的元素绑定事件。然而,...

    jQueryEasyUI-1.3.6(含API文档)

    4. **示例代码**:文档通常会提供示例代码,帮助开发者理解和应用组件,这些例子涵盖了基本到高级的用法。 5. **主题和CSS**:jQuery EasyUI提供了多种预设主题,文档中会解释如何应用和自定义这些主题,以满足项目...

    jQuery表格增加删除行响应式代码.zip

    综上所述,这个压缩包提供了一个实用的示例,展示了如何使用jQuery结合响应式设计来创建一个具有动态增删行功能的表格。开发者可以通过学习这个示例,理解并应用到自己的项目中,提升用户体验。

    JQuery实现表格动态增加行并对新行添加事件

    本示例探讨了如何使用jQuery实现表格动态增加行的功能,并且在新行上添加事件,以提升用户体验和性能。 首先,我们了解目标:创建一个表格,允许用户在表格末尾动态增加空白行,而不是一次性添加大量行,从而避免...

    JQuery分别取得每行最后一列和最后一行的示例代码

    对于动态更新的表格,可以使用事件监听器如`$(document).on('DOMSubtreeModified', '#mytable', function() {...})`来实时处理新增或删除的行。 总的来说,jQuery提供了丰富的选择器和方法,使得开发者能够灵活、...

    jquery根据td给相同tr下其他td赋值的实现方法

    在本问题中,我们关注的是如何使用 jQuery 根据某个 `td` 元素来给同一行 (`tr`) 下的其他 `td` 元素赋值。这里给出了两种实现方法。 ### 方法一 方法一利用了 jQuery 的选择器和链式操作。首先,`$(obj)` 选取了...

    .net表格动态添加行

    1. **HTML表格动态添加行**:在JavaScript或jQuery中,我们可以直接操作DOM元素来实现。例如,创建一个新的`&lt;tr&gt;`元素,为其填充`&lt;td&gt;`,然后将其插入到表格的适当位置。在.NET后台,可以生成HTML字符串并返回给前端...

    Html动态添加行

    综上所述,这个示例展示了如何利用HTML构建基本的表格结构,通过CSS美化样式,然后使用jQuery JavaScript库实现动态添加行的功能。这在网页交互设计中是一个常见的应用场景,有助于提高用户体验。

    超级简单的jquery操作表格方法

    - 接下来,创建新的行元素,如示例中的 `&lt;tr&gt;&lt;td&gt;re1&lt;/td&gt;&lt;td&gt;re2&lt;/td&gt;&lt;td&gt;re3&lt;/td&gt;&lt;/tr&gt;`,这可以根据实际需求自定义内容。 - 最后,使用 `append()` 方法将新创建的行添加到表格的末尾。 ```javascript function ...

    jQuery实现用户信息表格的添加和删除功能

    在本文中,我们将深入探讨...这个示例展示了jQuery在处理DOM操作和用户交互方面的强大能力,使开发者能够更轻松地构建富交互性的Web应用。理解并熟练运用jQuery的这些技巧,对于提升前端开发效率和用户体验至关重要。

    jQuery对table表格进行增删改查

    首先,我们需要创建一个表单让用户输入新数据,然后通过点击“新增”按钮触发jQuery事件,收集表单数据并将其添加到表格中。例如,可以使用`append()`方法来动态创建新的表格行: ```javascript $("#add_btn")....

Global site tag (gtag.js) - Google Analytics