Как скрыть строки таблицы на основе имени дочернего класса, используя jquery?
У меня есть много строк, и я хочу скрыть некоторые tr, которые не имеют определенного класса.
Пример:
<tr id="game-22590" class="game">
<td class="pos left-edge">
<div>2</div>
</td>
<td class="cost">
<input class="dollars-paid uncorrected" type="text" value="19,99" tabindex="4">
</td>
</tr>
<tr id="game-22591" class="game">
<td class="pos left-edge">
<div>3</div>
</td>
<td class="cost">
<input class="dollars-paid" type="text" value="23,99" tabindex="4">
</td>
</tr>
У td.cost есть вход с классом или двумя. Я хочу скрыть те строки, которые не имеют uncorrected
учебный класс.
3 ответа
Решение
Использование .filter()
чтобы выбрать строки имеетuncorrected
учебный класс.
$("tr.game").filter(function(){
return $(this).find("input.uncorrected").length == 0;
}).hide();
$("tr.game").filter(function(){
return $(this).find("input.uncorrected").length == 0;
}).hide();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr id="game-22590" class="game">
<td class="pos left-edge">
<div>2</div>
</td>
<td class="cost">
<input class="dollars-paid uncorrected" type="text" value="19,99" tabindex="4">
</td>
</tr>
<tr id="game-22591" class="game">
<td class="pos left-edge">
<div>3</div>
</td>
<td class="cost">
<input class="dollars-paid" type="text" value="23,99" tabindex="4">
</td>
</tr>
</table>
$("table tr.game").each(function(){
var self=$(this);
if(!self.find("input").hasClass("uncorrected")){
self.hide();
}
});
Вы можете сделать это с помощью метода closeQ () jQuery... пожалуйста, проверьте это решение
$(".dollars-paid").not(".uncorrected").closest(".game").hide();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<table>
<tr id="game-22590" class="game">
<td class="pos left-edge">
<div>2</div>
</td>
<td class="cost">
<input class="dollars-paid uncorrected" type="text" value="19,99" tabindex="4">
</td>
</tr>
<tr id="game-22591" class="game">
<td class="pos left-edge">
<div>3</div>
</td>
<td class="cost">
<input class="dollars-paid" type="text" value="23,99" tabindex="4">
</td>
</tr>
<tr id="game-22592" class="game">
<td class="pos left-edge">
<div>3</div>
</td>
<td class="cost">
<input class="dollars-paid" type="text" value="25,99" tabindex="4">
</td>
</tr>
</table>