Existe uma maneira mais extravagante de obter um item anterior com a mesma classe?
Eu tenho linhas de tabela assim:
<tr class="parent0 row3" data-parent="0">
<td>...</td>
</tr>
<tr class="parent3 row7" data-parent="3">
<td>...</td>
</tr>
<tr class="parent3 row12" data-parent="3">
<td>...</td>
</tr>
<tr class="parent0 row8" data-parent="0">
<td>...</td>
</tr>
<tr class="parent0 row9" data-parent="0">
<td>...</td>
</tr>
Então, se eu tiver um manipulador de cliques:
$(document).on({
"click": function(){
var parentId = $(this).data("parent");
//get previous sibling:
//OPTION A:
var prevParentA =
$(this).prev("parent" + parentId); //works sometimes
//OPTION B:
var prevParentB =
$(this).prevAll("parent" + parentId).eq(0); //works all the time but ugly...
}
}, "tr");
Opção A só funciona quando o item anterior direto tem o mesmo pai, mas quando isso énão O caso,prevParentA === []
qual énão o resultado desejado.
Opção B parece sempre funcionar, mas éfeio nisso está selecionandoTODOS dos itens anteriores que correspondem a essa classe e selecionando o primeiro que encontrar.
Existe uma opção melhor do queOpção B?