Jquery Скрыть родительскую метку, если span содержит 0 - PullRequest
0 голосов
/ 12 ноября 2019

У меня есть несколько меток, таких как:

<label class="custom-control custom-checkbox mb-3">
            <input type="checkbox" class="brand custom-control-input filters filter_level_100" data-filter-level="100" data-filter-type="checkbox" name="checkbox0" id="checkbox0" value="282">
            <span class="custom-control-label"> BMW<span class="label label-secondary float-right brand_counts" id="brand_counts_BMW">0</span> </span> </label>

Теперь я хочу скрыть метку, если диапазон содержит «0»! Следующие только скрывают промежуток.

$(".brand_counts").filter(function(){
           $(this).text().trim() === "0";
        }).hide();

Но как мне скрыть родительский ярлык? Спасибо

1 Ответ

1 голос
/ 12 ноября 2019

Сначала вам не хватает возврата внутрь фильтра. Без этого вы никогда не найдете элемент. Во-вторых, вам нужно найти дерево до метки, чтобы использовать ближайший.

$(".brand_counts").filter(function() {
  return $(this).text().trim() === "0"; // you missed return here
}).closest('label').hide(); // select the grandparent with closest
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<label class="custom-control custom-checkbox mb-3">
  <input type="checkbox" class="brand custom-control-input filters filter_level_100" data-filter-level="100" data-filter-type="checkbox" name="checkbox0" id="checkbox0" value="282">
  <span class="custom-control-label"> BMW<span class="label label-secondary float-right brand_counts" id="brand_counts_BMW">0</span> </span> 
</label>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...