难道是版本问题,写了一个小demo测试一下,没有发生你所说的那种情况。
demo here<!doctype html>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript" src="http://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.js"></script>
</head>
<body>
<table id="tb">
<tr>
<td>111</td>
<td>111222</td>
</tr>
<tr>
<td>111</td>
<td>111222</td>
</tr>
</table>
<script type="text/javascript">
var tr = $("#tb tr").eq(0).clone(true);
tr.appendTo("#tb");
</script>
</body>
</html>
demo here<!doctype html>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript" src="http://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.js"></script>
</head>
<body>
<table id="tb">
<tr>
<td>111</td>
<td>111222</td>
</tr>
<tr>
<td>111</td>
<td>111222</td>
</tr>
</table>
<script type="text/javascript">
var tr = $("#tb tr").eq(0).clone(true);
tr.appendTo("#tb");
</script>
</body>
</html>
tr本身有id="xxx" 里面的td里也有好多元素 比如input 之类 举例 <input id="abc" type="text" />
拷贝之后
tr的id就是xxx_1 里面的input之类也加"_1" 如 abc 就 变成"abc_1"
<!doctype html>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript" src="http://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.js"></script>
</head>
<body>
<table id="tb">
<tr id="tr1">
<td>111</td>
<td><input id="abc" type="text" /><span id="test">111</span></td>
</tr>
<tr id="tr2">
<td>111</td>
<td>111222</td>
</tr>
</table>
<input type="button" value="clone" id="btn"/>
<script type="text/javascript">
var n = 0;
$('#btn').click(function(){
var first = $("#tb tr").eq(0);
var tr = first.html().replace(/(id=".*?)"/g, '$1_' + n + '"');
tr = '<tr id="' + (first[0].id.slice(0, -1) + '_' + n) + '">' + tr + '</tr>'
$('#tb').append(tr);
n++;
});
</script>
</body>
</html>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript" src="http://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.js"></script>
</head>
<body>
<table id="tb">
<tr id=r><td id=d>111</td><td><input type=text id=t value=111222></td></tr>
</table>
<script type="text/javascript">
var tr = $("#tb tr").eq(0).clone();
el = tr.appendTo("#tb");
$id = '_1';
$(el).attr('id', $(el).attr('td') + $id);//这里有点问题
$(el).find('[id]').each(function() {
$(this).attr('id', $(this).attr('id') + $id)
});
alert($('#tb').html()); //看一下
</script>
</body>
</html>