如果特定文本显示在跨度中,则隐藏 div

Mar*_*iaL 5 html javascript jquery

如果特定文本显示在跨度中,我试图隐藏 aa div。我正在使用 jquery,这是代码:

HTML

<div class=“deliveryUpsellText”>
<p>blabla</p>
</div>


<ul>
  <li class=“error-msg”>
   <ul>
    <li>
     <span> Coupon Code “blabla” is not valid
     </span>
    </li>
   </ul>
  </li>
</ul>


<button type="button" id="cartCoupon" title="Apply Coupon" class="button applycouponhide" onclick="discountForm.submit(false) ; " value="Apply Coupon"><span style="background:none;"><span style="background:none;">Apply</span></span></button>
Run Code Online (Sandbox Code Playgroud)

jQuery

$j('#cartCoupon').click(function(){
if($j(".error-msg span:contains('blabla')")){
    $j('.deliveryUpsellText').css({"display":"none"});
}

});
Run Code Online (Sandbox Code Playgroud)

它在单击时隐藏 div,但它会忽略 if 语句。因此,即使跨度中的文本是“猫”,它仍会隐藏 div。谁能发现我做错了什么?此外,由于#cartCoupon按钮具有 onclick 事件dicountForm.submit(false);,deliveryUpsellText 在单击时被隐藏,但它未绑定到表单提交,因此一旦提交表单,它就会再次显示。有人知道我该如何解决吗?

dfs*_*fsq 1

jQuery 集合始终是真实的(因为它是一个对象)。您需要检查它是否包含节点(选定的内容)。length为此使用属性:

if ($j(".error-msg span:contains('blabla')").length) {
    $j('.deliveryUpsellText').css({
        "display": "none"
    });
}
Run Code Online (Sandbox Code Playgroud)