javascript – Return N elements from a list in jQuery

Question:

I have a list of elements, let's say a list of rows from a table:

$('#minha_tabela tr');

Is there a selector, method, or overload in jQuery that I can return more than one row by passing multiple indexes?

Something like,

$('#minha_tabela tr').get(0, 2, 7);

Answer:

If you want a continuous list, it can be the slice :

See an example:

$('#tabela tr').slice( 2, 4 ).css( "background-color", "red" );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<table id="tabela">
  <tr><td>Linha 1</td><td>0001</td></tr>
  <tr><td>Linha 2</td><td>0002</td></tr>
  <tr><td>Linha 3</td><td>0003</td></tr>
  <tr><td>Linha 4</td><td>0004</td></tr>
  <tr><td>Linha 5</td><td>0005</td></tr>
</table>

But, if you want values ​​with a varied sequence, you can use a .filter() combined with .inArray() :

$('#tabela tr').filter( function( index ) {
   return $.inArray(index, [0,2,7]) >= 0;
} ).css( "background-color", "red" );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<table id="tabela">
  <tr><td>Linha  1</td><td>0001</td></tr>
  <tr><td>Linha  2</td><td>0002</td></tr>
  <tr><td>Linha  3</td><td>0003</td></tr>
  <tr><td>Linha  4</td><td>0004</td></tr>
  <tr><td>Linha  5</td><td>0005</td></tr>
  <tr><td>Linha  6</td><td>0006</td></tr>
  <tr><td>Linha  7</td><td>0007</td></tr>
  <tr><td>Linha  8</td><td>0008</td></tr>
  <tr><td>Linha  9</td><td>0009</td></tr>
  <tr><td>Linha 10</td><td>0010</td></tr>
</table>
Scroll to Top