<html>
<head>
<meta http-equiv="Content-Type" content="text/html charset=UTF-8">
<script class="jquery library" src="/js/sandbox/jquery/jquery-1.8.2.min.js" type="text/javascript"></script>
<title>
RunJS 演示代码
</title>
<script>
jQuery(function($){
var table = $("table")
var addbtn = $("button:contains('添加')").click(function(){
if(table.data("ing") == 1) {
alert("必须保存这个TR中输入的值之后,才能再次添加TR,否则不能再次添加")
return
}
var txt = $("<tr><td><input type='text' /></td></tr>")
table.append(txt).data("ing", 1).prop("txt", txt.find(":text"))
})
$("button:contains('保存')").click(function(){
var txt = table.prop("txt")
if(table.data("ing")==0){
alert("你已经保存过了,不能更改,具体参考提问者需求")
return
}
if(txt.val() == ""){
alert("填写好数据再保存")
txt.focus()
return
}else{
txt.prop("readonly",true)
table.data("ing", 0)
}
})
})
</script>
</head>
<body>
<table>
</table>
<button>
添加
</button>
<button>
保存
</button>
</body>
</html>
分两种情况,第一td是现成的,不需要jQuery来加,这样 你直接调用each方法就行,里面有个变量i 每次都加1第二种情况td未知,这样的话,就直接for循环好了,每次循环都加一遍td和里面的id 循环外面定义一个html 这样到之后html里面就是所有的td 把他直接append到指定的tr下面就可以了
按照要求,在点击每一行的修改按钮,需要获取对应行的第一列input的value值,对应的js代码参考下方:
function change(){var text = $(this).parents('tr').children('td:eq(0)').children('input').val()
console.log(text)
}
还有更加简便的方法:在forEach循环生成tr和td元素时,按照如下规则生成td元素:
<c:forEach items="${projectHot26005s}" var="zslb"><tr id="sj1">
<td><input type="text" id="txt${zslb.projectId}" value="" maxlength="2"></td>
<td>${zslb.projectName }</td>
<td><button class="btn btn-red r3 margin" onclick="btnDelete('${zslb.projectId }')">删除</button></td>
<td><button class="btn btn-red r3 margin" onclick="change('${zslb.projectId}')">修改</button></td>
</tr>
</c:forEach>
这样在change方法中就能通过唯一的id来定位到指定的input,既而获取到value值:
function change(id){var text = $("#txt" + id).val()
console.log(text)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)