Usando jQuery, como excluo todas as linhas de uma tabela, exceto a primeira? Esta é minha primeira tentativa de usar seletores de índice. Se eu entendo os exemplos corretamente, o seguinte deve funcionar:
$(some table selector).remove("tr:gt(0)");
que eu leria como "Embrulhe alguma tabela em um objeto jQuery e remova todos os elementos 'tr' (linhas) onde o índice de elementos dessas linhas é maior que zero". Na realidade, ele é executado sem gerar um erro, mas não remove nenhuma linha da tabela.
O que estou perdendo e como faço para corrigir isso? Claro, eu poderia usar javascript direto, mas estou me divertindo tanto com o jQuery que gostaria de resolver isso usando o jQuery.
jquery
jquery-selectors
Ken Paul
fonte
fonte
Respostas:
Isso deve funcionar:
fonte
Because :gt() is a jQuery extension and not part of the CSS specification, queries using :gt() cannot take advantage of the performance boost provided by the native DOM querySelectorAll() method. For better performance in modern browsers, use $("your-pure-css-selector").slice(index) instead.
eu recomendaria usar $ ("# mytable> tr"). Slice (1) .remove ();Eu acho que isso é mais legível, dada a intenção:
O uso de filhos também cuida do caso em que a primeira linha contém uma tabela, limitando a profundidade da pesquisa.
Se você tinha um elemento TBODY, pode fazer o seguinte:
Se você tiver elementos THEAD ou TFOOT, precisará fazer algo diferente.
fonte
$('someTableSelector > tbody:last > tr:not(:first)').remove();
$("#tasks").children().remove();
Outra maneira de conseguir isso é usar a função empty () do jQuery com os elementos thead e tbody na sua tabela.
Exemplo de uma tabela:
E o comando jQuery:
Isso removerá todas as linhas contidas no elemento tbody da sua tabela e manterá o elemento thead onde seu cabeçalho deve estar. Pode ser útil quando você deseja atualizar apenas o conteúdo de uma tabela.
fonte
Se fosse eu, provavelmente resumiria a um único seletor:
fonte
Seu seletor não precisa estar dentro da sua remoção.
Deve ser algo como:
O que significa selecionar todas as linhas, exceto a primeira da tabela com o ID da tabela, e removê-las do DOM.
fonte
Lembro-me de que encontrar essa 'fatia' é mais rápido do que todas as outras abordagens, então basta colocá-la aqui.
fonte
gt
está obsoleto, esta é a melhor resposta.Considere uma tabela com o ID
tbl
: o código jQuery seria:fonte
Para remover todas as linhas, exceto a primeira (exceto o cabeçalho), use o código abaixo:
$("#dataTable tr:gt(1)").remove();
fonte
Caminho mais fácil :
-primeira referência à tabela
-get a lista de elementos e dividi-la e remover os elementos selecionados da lista
fonte
-Desculpe, isso é resposta muito tarde.
A maneira mais fácil que encontrei de excluir qualquer linha (e todas as outras linhas através da iteração) é esta
$ ('# rowid', '# tableid'). remove ();
O resto é fácil.
fonte
fonte
envolto em uma função:
então chame-o:
fonte
Isso funciona perfeitamente
fonte
Isso funcionou da seguinte maneira no meu caso e funcionando bem
fonte