使用jQuery更改确切的文本

时间:2017-04-10 18:35:41

标签: jquery html filter target

我的网站上有一个包含文字的div。

<div class="bloc_thumb_produit">
    <span class="price">
        <span class="woocommerce-Price-amount amount">0,00
        <span class="woocommerce-Price-currencySymbol">&euro;</span>
        </span>
    </span>
</div>

我想更改文字&#34; 0,00&#34;通过&#34;按需定价&#34;

我可以使用这个jQuery代码来实现:

$(".bloc_thumb_produit .price .amount:contains('0,00')").html("price on demand");

它工作正常,但只有当文字是&#34; 0,00&#34;,当文字是&#34; 40,00&#34;时,我的文字也会改变。

我试图找到一种匹配确切文字的方法&#34; 0,00&#34;并删除文本周围的跨度,以便:

<div class="bloc_thumb_produit">
    <span class="price">
         <span class="woocommerce-Price-amount amount">price on demand</span>
    </span>
</div>

而不是:

<div class="bloc_thumb_produit">
    <span class="price">
        <span class="woocommerce-Price-amount amount"> 0,00
        <span class="woocommerce-Price-currencySymbol">&euro;</span>
        </span>
    </span>
</div>

1 个答案:

答案 0 :(得分:0)

作为第一个选项,您可能需要if条件来检查文字startsWith 0,00

&#13;
&#13;
if ($(".bloc_thumb_produit .price .amount").text().startsWith("0,00"))
  $(".bloc_thumb_produit .price .amount").html("price on demand");
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="bloc_thumb_produit"><span class="price"><span class="woocommerce-Price-amount amount">0,00<span class="woocommerce-Price-currencySymbol">&euro;</span></span>
  </span>
</div>
&#13;
&#13;
&#13;

如果没有,您可以考虑第二个选项,然后在data-*添加额外的html属性以包含amount,您可以在没有if条件的情况下使用它如下:

&#13;
&#13;
$(".bloc_thumb_produit .price .amount[data-amt^='0,00']").html("price on demand");
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="bloc_thumb_produit"><span class="price"><span class="woocommerce-Price-amount amount" data-amt="0,00">0,00<span class="woocommerce-Price-currencySymbol">&euro;</span></span>
  </span>
</div>
&#13;
&#13;
&#13;