2011-10-18 9 views
3

테이블이 있고이 테이블에 행을 추가 및 제거하는 두 개의 단추가 있습니다.테이블의 마지막 3 행을 지우는 중

그래서 행을 추가하는 것이 쉽습니다 (매번 아약스를 통해 3 행을 얻음).

지금은 제거 버튼 을 클릭하여 테이블의 마지막 3 행을 제거 할 수 있기를 원합니다. 어떤 종류의 기능이 없거나 .... 내 테이블에 최근 추가 된 내용을 제거하려면! 나는 나 자신

뭔가

$('#tbl tr:lt(3)').remove(); 

하지만 지난 3하지 첫째 것과 같은 테이블의 마지막 세 행을 제거해야합니다!

가 또는 내가 너무 바보 아니에요

function remove(){ 
var i ; 
for(i=0 ; i < 3 ; i++){ 
$('#table tr:last').remove(); 
} 
alert('removed'); 
} 

답변

7
$("table tr").slice(-3).remove(); 
+0

크리스 고맙습니다 난 또 다른 질문 왜이 작동하지 않습니다 : var row_count = $ (this) .parent(). 형제 ('table tr'). 길이; 나는 이런 식의 테이블을 얻을 수 있지만 트렁크를 얻을 수는 없다. – max

+0

Horrendous! HTML 테이블 요소에는 행 모음이 있으므로 가장 간단하고 빠른 방법 (jQuery를 사용해야하는 경우)은'$ (# tableId) [0] .rows.length' 또는 이와 유사해야합니다. – RobG

+0

고맙습니다. 이제 $ this 객체를 사용하여 마지막 3 개의 행을 제거 할 수 있습니다 ($ this는 버튼을 의미합니다)? $ (this) .parent(). 형제 ('table tr'). slice (-3) .remove(); – max

2

처럼 멍청한 짓을해야, 그것은 좋은 해결 방법이다. 그것을 정리하기 위해서, 나는 쓸 것이다

function remove(){ 
    $('#table tr:last').remove(); 
    $('#table tr:last').remove(); 
    $('#table tr:last').remove(); 
    alert('removed'); 
} 
0

나는 동의한다, 그것은 어리 석다. 하지만 당신이라면, 나는 매개 변수를 추가 할 행의 수를 제거합니다 :

function removeLastRows(numberOfRows){ 
    var i ; 
    for(i=0 ; i < numberOfRows ; i++){ 
     $('#table tr:last').remove(); 
    } 
    alert('removed'); 
} 
0

그냥 일반 JS와 비교,

function removeLastRows(table, n) { 
    if (!table || !n) return; 
    var row, rows = table.rows; 
    while (n--) { 
    row = rows[rows.length]; 
    row.parentNode.removeChild(row); 
    } 
} 

removeLastRows(document.getElementById('table', 3)); 
관련 문제