Как скрыть строки таблицы на основе имени дочернего класса, используя 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>

Другие вопросы по тегам