动态生成的标签在多次删除后id顺序混乱不好定位的解决方法(重排id)
有时候页面一些操作需要动态生成一些填写框或者选择框什么的,而这些框又需要id定位,很多伙伴会按照一定顺序排序这个id,但是如果遇到用户新增加了一个框,又删了一个框这种情况,就会导致按顺序排列的id出现混乱,如果这个时候需要通过js来获取某个值,就不好定位了,出现这种情况,有个最好的方法,那就是每次删除后,重新配列这些id!保证id都是按照顺序正常排列的!
具体实现代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>重排列id</title>
</head>
<script src="js/jquery-1.8.2.min.js" type="text/javascript" charset="utf-8"></script>
<body>
<input type="button" value="添加" id="tian"/>
<!--<input type="button" value="删除" id="shan"/>-->
<div id="d1">
<table id="tab" style="display: none;" cellspacing="0px" border="1px solid black">
</table>
</div>
</body>
<script type="text/javascript">
var dId = 0;
$(function(){
//添加
$("#tian").click(function(){
$("#tab").show();
var html = "<tr id='t_"+dId+"'>"
+"<td><input type='text' class='in' id='d_"+dId+"' value='你好'/></td>"
+"<td><input type='button' value='删除' id='shan'/></td>"
+"</tr>";
$("#tab").append(html);
dId++;
});
})
//删除
$(document).on('click','#shan', function () {
$(this).parents("tr").remove();
chongId();
if($(".in").length == 0){
$("#tab").hide();
}
});
//一旦删除后重新排序id
function chongId(){
dId = $(".in").length;
for(var i=0;i<dId;i++){
$("#tab tr:eq("+i+")").attr("id","t_"+i);
$("#tab tr:eq("+i+") td:eq(0) input").attr("id","d_"+i);
}
}
</script>
</html>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通