Javascript 如果元素包含特定文本,则隐藏该元素

Javascript 如果元素包含特定文本,则隐藏该元素,javascript,jquery,html,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<

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

我想搜索以检查它是否包含“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>

英镑
£0.00    

这是否可能使用某种形式的javascript?

如果您无法更改HTML,这会有点乏味,因为文本必须从currencyCode和currencySymbol中清除。一种方法是克隆div,然后获取文本:

$(“.ct\u pd\u item\u price.ct\u pd\u item\u value”).filter(函数(){
返回$(this).clone().find('.ct\u currencyCode,.ct\u currencySymbol').remove().end().text().trim()=“0.00”
}).hide()


当然,一个更干净的HTML,可能带有数据属性中的值,会更容易处理。

如果您不能更改HTML,这会有点乏味,因为文本必须从currencyCode和currencySymbol中清除。一种方法是克隆div,然后获取文本:

$(“.ct\u pd\u item\u price.ct\u pd\u item\u value”).filter(函数(){
返回$(this).clone().find('.ct\u currencyCode,.ct\u currencySymbol').remove().end().text().trim()=“0.00”
}).hide()


当然,更干净的HTML(可能在数据属性中有值)更容易处理。

正则表达式的另一种方式

$('[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

正则表达式的另一种方式

$('[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

您想对上述代码进行任何解释吗?您能对此进行校对吗?我怀疑you@skip405-我们不能怀疑德斯特罗伊。因为他已经证明了SO@Sudharsan我也会犯错误。在这里,我起初错误地认为真正的HTML会在一个特定的范围内有价值(我会这么做)。@Sudharsan,我不是有意冒犯任何人,只是要求在网上链接一个与当前答案完全不同的答案:)现在我的评论不合适,当然,你想解释一下上面的代码吗?你能证明一下吗?我怀疑you@skip405-我们不能怀疑德斯特罗伊。因为他已经证明了SO@Sudharsan我也会犯错误。在这里,我一开始错误地认为真正的HTML会有一个特定范围内的值(我会这么做)。@Sudharsan,我不是有意冒犯任何人,只是要求在网上链接一个与当前答案完全不同的答案:)现在我的评论不合适,HTML标记肯定是无效的。它缺少一个结束标记。@epascarello,为什么呢?@jQueryAngryBird因为它缺少一个结束标记。@epascarello你是说?缺少?这将是一个结束标记,这将是缺少的内容。HTML标记无效。它缺少一个结束标记。@epascarello,为什么呢?@jQueryAngryBird因为它缺少一个结束标记。@epascarello你是说?缺少?这将是一个结束标记,这将是缺少的。+1因为我不明白为什么这应该被否决,问否决选民可能太晚了+1因为我不明白为什么应该被否决,问否决选民可能太晚了