javascript - JQuery - 如果子 div 没有相似或类似的数据属性,则隐藏父 div

标签 javascript jquery html show-hide

当用户输入机场并且该国家/地区没有类似的机场名称时,我想隐藏国家/地区名称。

$(document).ready(function() {
  $('#from').focus();
  $('#from').on("keyup", function() {
    $(".wrap-airport-from").animate({
      scrollTop: 0
    }, "fast");
    if ($(this).val()) {
      var input = $(this).val().toLowerCase();
      console.log(input);
      //alert(input);
      $(".airport-from").hide();
      $(".airport-from[data-kode*='" + input + "']").show();
    } else {
      $(".airport-from").show();
    }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="from">
<div class="wrap-airport-from">
  <div class="list-country">
    <b>Indonesia</b>
    <div class="list-airport">
      <a href="#" class="airport-from" data-kode="jakarta">Jakarta</a>
    </div>
  </div>
  <div class="list-country">
    <b>Australia</b>
    <div class="list-airport">
      <a href="#" class="airport-from" data-kode="sidney">Sidney</a>
    </div>
  </div>
</div>

以上代码仅隐藏机场名称,但仍显示国家/地区

最佳答案

您可以使用 jQuery 函数.parents()来选择和隐藏相应的父元素。

$(document).ready(function() {
  $('#from').focus();
  $('#from').on("keyup", function() {
    $(".wrap-airport-from").animate({
      scrollTop: 0
    }, "fast");
    if ($(this).val()) {
      var input = $(this).val().toLowerCase();
      console.log(input);
      //alert(input);
      $(".airport-from").hide();
      $(".airport-from").parents('.list-country').hide();
      $(".airport-from[data-kode*='" + input + "']").parents('.list-country').show();
      $(".airport-from[data-kode*='" + input + "']").show();
    } else {
      $(".airport-from").show();
      $(".airport-from").parents('.list-country').show();
    }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="from">
<div class="wrap-airport-from">
  <div class="list-country">
    <b>Indonesia</b>
    <div class="list-airport">
      <a href="#" class="airport-from" data-kode="jakarta">Jakarta</a>
    </div>
  </div>
  <div class="list-country">
    <b>Australia</b>
    <div class="list-airport">
      <a href="#" class="airport-from" data-kode="sidney">Sidney</a>
    </div>
  </div>
</div>

关于javascript - JQuery - 如果子 div 没有相似或类似的数据属性,则隐藏父 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37295023/

相关文章:

javascript - 为什么我应该使用backbone.js或spine.js

html - CSS/HTML 将文本放在图像下,与哪个视口(viewport)/分辨率无关

javascript - 具有类似行为的第二个元素上的 JS 单击事件不会触发

jquery - 从下拉列表中复制选项列表。查询

python - 阻止网页中的 HTML 标记

javascript - 数据表上的 Bootstrap 按钮未呈现

JavaScript 代码不起作用

JavaScript : Why does my password field not updating at all?

javascript - 在 $(document).ready 期间无法更改在 $(document).ready 期间添加的元素

javascript - 在多选中我如何使用jquery获取点击值