Bom dia a todos!
Estou com uma dificuldade na hora de criar um filtro, funciona assim: Tenho uma tabela que lista alguns itens, cada item fica em uma linha que possui uma id no formato id=“bla_ + ${id}” gerando ids neste modelo bla_1, bla_2, etc. Possuo um combo que lista os itens e um botão filtrar. O que quero fazer é simples, queria apenas que ao selecionar um item na lista e clicar filtrar aparecesse somente aquele item selecionado, os outros seriam ocultados. Ai pensamos nossa, apenas uma if, se id do item for diferente da selecionada oculta, ai que está o problema, ao fazer isso ele oculta todos os itens! segue o código para análise.
Parte do JavaScript responsavel por percorrer os itens, verificar se a id é diferente e em caso positivo oculta-la deixando apenas a selecionada (porém oculta todas)
idResiduo = $("select[name ='res']").val();
var list = document.getElementById("list");
var ultimo = list.options.length;
for(var i = 0; i < ultimo; i++){
if($("#bla_" + i) != $("#bla_" + idResiduo)){
$("#bla_" + i).hide();
}
}
Lista para seleção
<label>
Residuo:
<select name="res" id="list">
<option value="0">Todos</option>
<c:forEach var="residuo" items="${dao.lista}">
<option value="${residuo.id}">${residuo.descricao}</option>
</c:forEach>
</select>
</label>
Tabela
<c:forEach var="residuo" items="${dao.lista}">
<tr id="bla_${residuo.id}">
<td>${residuo.descricao}</td>
</tr>
</c:forEach>
Alguém consegue ver onde errei?