首页 > 解决方案 > 如果元素具有特定的类并仅编辑此元素,我可以使用 jQuery 检查吗?

问题描述

if (jQuery("li.store .premise")[0]) {
    jQuery(".address .arrow").remove();
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="store">
    <div class="address">
        <span class="arrow"></span>
        <div class="results-toggle">
            <div class="shop-address">
                <div class="street-block">
                    <div class="thoroughfare">demo address</div>
                    <div class="premise">additional info</div>
                </div>
                <div class="addressfield-container-inline locality-block country-BG"><span
                        class="locality">New York</span></div>
                <span class="country">USA</span>
            </div>
            <div class="shop-phone">+1 4258741</div>
        </div>
    </div>
</div>

有没有办法检查一个元素是否包含特定的类,如果包含,那么只编辑这个或这些元素。

我有一个商店列表,如果其中一些包含特定的类来删除箭头,我想要。

我试过了,但它用类箭头删除了所有元素,我想删除唯一具有特定类的商店,在这种情况下是class="premise"

标签: javascriptjqueryfrontend

解决方案


一旦你有一个premises 的集合,使用.closest导航到他们的祖先address,你可以从那里到达.arrows:

$('div.store .premise').closest('.address').find('.arrow').remove();

(假设.store您的实际代码中的元素是 a <li>,否则使用div.storeor just .store

$('div.store .premise').closest('.address').find('.arrow').remove();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="store">
  <div class="address">
    <span class="arrow">arrow here</span>
    <div class="results-toggle">
      <div class="shop-address">
        <div class="street-block">
          <div class="thoroughfare">demo address</div>
          <div class="premise">additional info</div>
        </div>
        <div class="addressfield-container-inline locality-block country-BG"><span class="locality">New York</span></div>
        <span class="country">USA</span>
      </div>
      <div class="shop-phone">+1 4258741</div>
    </div>
  </div>
</div>


推荐阅读