隐藏元素(如果它包含特定文本)

时间:2014-07-24 12:35:37

标签: javascript jquery html

我的电子商务网站上有以下代码。

我想搜索 以检查它是否包含“0.00”

如果它确实包含“0.00”我想隐藏包含价格的父div

这是因为我们希望产品在线显示,但即​​使无法购买,价格仍会显示,因此我们不希望人们在价格为0.00英镑时感到困惑。

<div class="ct_pd_item_price ct_pd_item_value">
<span itemprop="price">
<span class="ct_currencyCode">GBP</span>
<span class="ct_currencySymbol">£</span>0.00</span>    
</div>

这是否可以使用某种形式的JavaScript?

2 个答案:

答案 0 :(得分:5)

如果您无法更改HTML,则有点单调乏味,因为文本必须来自currencyCode和currencySymbol。一种方法是克隆div,然后获取文本:

$(".ct_pd_item_price.ct_pd_item_value").filter(function(){
   return $(this).clone().find('.ct_currencyCode, .ct_currencySymbol').remove().end().text().trim()=="0.00"
}).hide()

Demonstration

当然,更清晰的HTML(可能具有数据属性中的值)会更容易处理。

答案 1 :(得分:0)

使用正则表达式的另一种方法

$('[itemprop="price"]').each(
    function() {
        var elem = $(this);
        if (elem.text().match(/[^\d]0\.00/)) {
            elem.closest(".ct_pd_item_price.ct_pd_item_value").hide();
        }
    }
);

拉出文字,£0.00符合价格不是[anynumber]0.00