[jquery] jQuery는 첫 번째를 제외한 모든 테이블 행을 삭제합니다.

jQuery를 사용하여 첫 번째를 제외한 테이블의 모든 행을 어떻게 삭제합니까? 이것은 인덱스 선택기를 사용하는 첫 번째 시도입니다. 예제를 올바르게 이해하면 다음이 작동합니다.

$(some table selector).remove("tr:gt(0)");

“jQuery 객체의 일부 테이블을 래핑 한 다음 해당 행의 요소 인덱스가 0보다 큰 모든 ‘tr’요소 (행)를 제거합니다.”라고 읽습니다. 실제로는 오류를 생성하지 않고 실행되지만 테이블에서 행을 제거하지는 않습니다.

내가 잃어버린 부분은 무엇이며 어떻게 해결합니까? 물론, 나는 자바 스크립트를 사용할 수는 있지만 jQuery를 사용하여 jQuery를 사용 하여이 문제를 해결하고 싶습니다.



답변

이것은 작동해야합니다 :

$(document).ready(function() {
   $("someTableSelector").find("tr:gt(0)").remove();
});


답변

나는 이것이 의도가 더 읽기 쉽다고 생각합니다.

$('someTableSelector').children( 'tr:not(:first)' ).remove();

자식을 사용하면 첫 번째 행에 검색 깊이를 제한하여 테이블이 포함 된 경우도 처리됩니다.

TBODY 요소가있는 경우 다음을 수행 할 수 있습니다.

$("someTableSelector > tbody:last").children().remove();

THEAD 또는 TFOOT 요소가있는 경우 다른 작업을 수행해야합니다.


답변

이를 수행하는 또 다른 방법은 테이블의 thead 및 tbody 요소와 함께 jQuery의 empty () 함수를 사용하는 것입니다.

테이블 예 :

<table id="tableId">
<thead>
    <tr><th>Col1</th><th>Col2</th></tr>
</thead>
<tbody>
    <tr><td>some</td><td>content</td></tr>
    <tr><td>to be</td><td>removed</td></tr>
</tbody>
</table>

그리고 jQuery 명령 :

$("#tableId > tbody").empty();

그러면 테이블의 tbody 요소에 포함 된 모든 행이 제거되고 thead 요소가 헤더의 위치에 유지됩니다. 테이블 내용 만 새로 고치려고 할 때 유용 할 수 있습니다.


답변

그것이 나라면 아마 단일 선택기로 끓일 것입니다.

$('someTableSelector tr:not(:first)').remove();


답변

선택기는 제거 내부에있을 필요가 없습니다.

다음과 같이 보일 것입니다 :

$("#tableID tr:gt(0)").remove();

즉, ID가 tableID 인 테이블에서 첫 번째를 제외한 모든 행을 선택하고 DOM에서 제거합니다.


답변

$('#table tr').slice(1).remove();

나는 그 ‘슬라이스’를 발견하는 것이 다른 모든 접근법보다 빠르다는 것을 기억합니다.


답변

id가있는 테이블을 고려하십시오 tbl: jQuery 코드는 다음과 같습니다.

$('#tbl tr:not(:first)').remove();