jquery的replaceWith用法求详解,代码改进!

大张 大张 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我增加的行中有多个input select,希望在删除时能保持内容不变,可是在replaceWith时遇到问题!
如何能简洁的更新相关的id,name,value?

以下是重点代码

//删除<tr/>
var deltr =function(index)
{
var _len = $("#tab tr").length;
$("tr[id='"+index+"']").remove();//删除当前行
for(var i=index+1,j=_len;i<j;i++)
{
//var nextTxtVal = $("#desc"+i).val();
var nextTxtVal = $("#desc"+i).html();
var nextIndex = $("#desc"+i).get(0).selectedIndex;
$("tr[id=\'"+i+"\']")
.replaceWith("<tr id="+(i-1)+" align='center'>"
+"<td>"+(i-1)+"</td>"
+"<td><select name=ColorName"+(i-1)+" id='desc"+(i-1)+"' style=width:auto;>"+nextTxtVal+"</select></td>"
+"<td><a href=\'#\' onclick=\'deltr("+(i-1)+")\'>删除</a></td>"
+"</tr>");
$("#desc"+(i-1)).get(0).selectedIndex = nextIndex; //index为索引值
}

以下是全文代码


<!-- include file="public/isuser.asp" -->

<html>
<head>
<link href="style.css" rel="stylesheet" type="text/css" media="all" />
<script type="text/javascript" src="js/jquery-1.9.1.min.js"></script>
<title></title>
<script>
$(document).ready(function(){
//<tr/>居中
$("#tab tr").attr("align","center");

//增加<tr/>
$("#but").click(function(){
var _len = $("#tab tr").length;
//alert(_len);
$("#tab").append("<tr id="+_len+" align='center'>"
+"<td>"+_len+"</td>"
+"<td><select name=ColorName"+_len+" id='desc"+_len+"' style=width:auto;><option value=黑色 >黑色</option><option value=紫色 >紫色</option><option value=绿色 >绿色</option></select></td>"

+"<td><input type='text' class='number' size='6' maxlength='6' value='0' name='S90_"+_len+"' id='D_90"+_len+"' /></td>"

+"<td><input type='text' class='number' size='6' maxlength='6' value='0' name='S100_"+_len+"' id='D_100"+_len+"' /></td>"

+"<td><input type='text' class='number' size='6' maxlength='6' value='0' name='S110_"+_len+"' id='D_110"+_len+"' /></td>"

+"<td><input type='text' class='number' size='6' maxlength='6' value='0' name='S120_"+_len+"' id='D_120"+_len+"' /></td>"

+"<td><input type='text' class='number' size='6' maxlength='6' value='0' name='S130_"+_len+"' id='D_130"+_len+"' /></td>"

+"<td><input type='text' class='number' size='6' maxlength='6' value='0' name='S140_"+_len+"' id='D_140"+_len+"' /></td>"

+"<td><a href=\'#\' onclick=\'deltr("+_len+")\'>删除</a></td>"
+"</tr>");
})
})

//删除<tr/>
var deltr =function(index)
{
var _len = $("#tab tr").length;
$("tr[id='"+index+"']").remove();//删除当前行
for(var i=index+1,j=_len;i<j;i++)
{
//var nextTxtVal = $("#desc"+i).val();
var nextTxtVal = $("#desc"+i).html();
var nextIndex = $("#desc"+i).get(0).selectedIndex;
$("tr[id=\'"+i+"\']")
.replaceWith("<tr id="+(i-1)+" align='center'>"
+"<td>"+(i-1)+"</td>"
+"<td><select name=ColorName"+(i-1)+" id='desc"+(i-1)+"' style=width:auto;>"+nextTxtVal+"</select></td>"
+"<td><a href=\'#\' onclick=\'deltr("+(i-1)+")\'>删除</a></td>"
+"</tr>");
$("#desc"+(i-1)).get(0).selectedIndex = nextIndex; //index为索引值
}

}
</script>
</head>
<body>
<div id="inner-table-hpzl">
<form action="" method="get">
<table id="tab" border="1" width="60%" align="center" style="margin-top:20px">
<tr>
<th width=30 align=center>序号</th>
<th width=110 align=center>颜色</th>
<th width=50 align=center>90</th><th width=50 align=center>100</th><th width=50 align=center>110</th><th width=50 align=center>120</th><th width=50 align=center>130</th><th width=50 align=center>140</th>
<th width=28 align=center>操作</th>
</tr>
</table>
<div style="border:2px;border-color:#00CC00;margin-left:20%;margin-top:20px">
<input type="button" id="but" value="增加"/>
</div>
</form>
</div>
<input name="" type="text" maxlength='6'>
<input name="" type="submit"/> intK<input name=intK> intS<input name=intS>
</body>
</html>



我找到了原文里只有一个input,好理解,多个input就遇到问题了。
这是原文

<!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>
<script type="text/javascript" src="js/jquery-1.9.1.min.js"></script>
<title></title>
<script>
$(document).ready(function(){
//<tr/>居中
$("#tab tr").attr("align","center");

//增加<tr/>
$("#but").click(function(){
var _len = $("#tab tr").length;
$("#tab").append("<tr id="+_len+" align='center'>"
+"<td>"+_len+"</td>"
+"<td>Dynamic TR"+_len+"</td>"
+"<td><input type='text' name='desc"+_len+"' id='desc"+_len+"' /></td>"
+"<td><a href=\'#\' onclick=\'deltr("+_len+")\'>删除</a></td>"
+"</tr>");
})
})

//删除<tr/>
var deltr =function(index)
{
var _len = $("#tab tr").length;
$("tr[id='"+index+"']").remove();//删除当前行
for(var i=index+1,j=_len;i<j;i++)
{
var nextTxtVal = $("#desc"+i).val();
$("tr[id=\'"+i+"\']")
.replaceWith("<tr id="+(i-1)+" align='center'>"
+"<td>"+(i-1)+"</td>"
+"<td>Dynamic TR"+(i-1)+"</td>"
+"<td><input type='text' name='desc"+(i-1)+"' value='"+nextTxtVal+"' id='desc"+(i-1)+"'/></td>"
+"<td><a href=\'#\' onclick=\'deltr("+(i-1)+")\'>删除</a></td>"
+"</tr>");
}

}
</script>
</head>
<body>
<form action="" method="get">
<input name="" type="submit" />
<table id="tab" border="1" width="60%" align="center" style="margin-top:20px">
<tr>
<td width="20%">序号</td>
<td>标题</td>
<td>描述</td>
<td>操作</td>
</tr>
</table>
<div style="border:2px;border-color:#00CC00;margin-left:20%;margin-top:20px">
<input type="button" id="but" value="增加"/>
</div>
</form>
</body>
</html>


这是原文地址http://www.blogjava.net/absolutedo/archive/2009/03/13/259488.html
...全文
评论 11
收藏 已收藏
分享
返回顶部
大张
JavaScript 87,984 成员 224,681 内容