日期:2014-05-16  浏览次数:20364 次

大家有没有遇到过JQUERY增一行,删一行不灵的问题??????
要求是一个TABLE列表10行,为了保持行数不变,并且是无刷新更新列表行。
在FORM中新增一条记录的同时删除最后一行的记录,保持和数不变,我用的方法:
JScript code

$("#tableId tr:first").before("<tr><td>asdf</td></tr>");
$("#tableId tr:last").remove();


这是在第一行新增一条,然后删除最的一行。
但这么用不行!原因是对于原来刷出来的列表10条记录是可以的,但如果你新增了10条以上,
就是把原来刷出来的10条都换成你新增的这10条的话,你再新增,每新增两次,他才删一条,
所以造成多于10条记录,并不断的增加现像,不知道是怎么回事??
是不是对于JQUERY自己无刷新,新增的记录存在遍利的问题????

------解决方案--------------------
楼主,我测试了没有出现你说的问题锕。我用IE7,8,9和火狐测试都没问题,测试代码如下
 <html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
<script language="javascript" type="text/javascript">
function add() {
$("#tableId tr:first").before("<tr><td>" + (new Date().getMilliseconds()) + "</td></tr>");
$("#tableId tr:last").remove();
}
</script>
</head>
<body>
<table border="1" id="tableId">
<tr><td>1</td></tr>
<tr><td>2</td></tr>
<tr><td>3</td></tr>
<tr><td>4</td></tr>
<tr><td>5</td></tr>
<tr><td>6</td></tr>
<tr><td>7</td></tr>
<tr><td>8</td></tr>
<tr><td>9</td></tr>
<tr><td>10</td></tr>
</table>
<input type="button" value="add" onclick="add()" />
</body>
</html>
------解决方案--------------------
JScript code

function addRow() {
        var r = workTable.rows.length;
        if (r< 10) {
            //添加一行
            var newTr = workTable.insertRow();
            //添加两列
            var newTd0 = newTr.insertCell();            
            var newTd1 = newTr.insertCell();
            //设置列内容和属性
            newTd0.innerText =r+1;
            newTd1.innerHTML = '<input type=text class="txt"/>';
            r++;
        } else {
            alert("最多添加10条记录!");
            return;
         }
    }
    //var row = document.getElementById('workTable').rows.length - 1;
    function delRow() {
        var r = workTable.rows.length;        
        if (r> 5) {
            //workTable.deleteRow(i);
            document.getElementById('workTable').deleteRow(r-1);
            r--;
       } else {
            alert("剩余5条记录不能删除!");           
        }
     }

------解决方案--------------------
程序逻辑没有问题。
但是我个人建议你 先删除后新增,保你百试不爽。

$("#tableId tr:last").remove();
$("#tableId tr:first").before("<tr><td>asdf</td></tr>");

------解决方案--------------------
JScript code
//也可以用prepend新增行试试:
$("#tableId").prepend('<tr><td>asdf</td></tr>');