将行为应用于具有相同类的元素中的特定div

时间:2016-11-04 14:32:29

标签: javascript jquery html

我只是在隐藏范围等于我是秘密的情况下尝试隐藏div Staging

我尝试过使用class="input".each(function)的不同方法,但无法理解它。为了说明这个例子,我在下面添加了代码。

请注意,我无法添加任何ID或类,行的顺序可能会有所不同。

.next()
    (function($) {
      $('.basket__item-row').each(function() {
        if ($('.hidden-span').is(":contains('i-am-secret')")) {
          $(this).next().hide();
        }
      });
    })(jQuery)

1 个答案:

答案 0 :(得分:2)

我会以这种方式进行遍历......

$('.hidden-span')    // Target all the hidden spans.
  .filter(function () {  // Filter all the span that contains the text.
    return $(this).text().indexOf("i-am-secret") !== false;
  })
  .closest(".image") // Get the parent `.image`.
  .next(".input")    // Get the `.input` which is its sibling.
  .hide();           // Hide it.

(function($) {
  $('.hidden-span').filter(function () {
    return $(this).text().indexOf("i-am-secret") !== false;
  }).closest(".image").next(".input").hide();
})(jQuery)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<div class="basket__item-row">
  <div class="image">
    <div>
      I am normal div
    </div>
  </div>
  <div class="input">
    Please hide me
  </div>
</div>
<div class="basket__item-row">
  <div class="image">
    <div>
      I am extra div
      <span class="hidden-span">i-am-secret</span>
    </div>
  </div>
  <div class="input">
    Please hide me
  </div>
</div>
<div class="basket__item-row">
  <div class="image">
    <div>
      I am normal div
    </div>
  </div>
  <div class="input">
    Please hide me
  </div>
</div>

请更正语法错误。它应该是class="basket__item-row"