jQuery - 如果元素文本匹配语句,则更改匹配的文本

时间:2014-10-10 10:32:05

标签: jquery

以下是我想要实现的想法。但是我知道$(this)不能以这种方式工作,我只是不知道如何解释我想要做的事情:

if($('.price').text() || $('.productPrice').text() == "£0.00"){
    $(this).text('See Product');
}

HTML:

<p class="price">£0.00</p><p class="productPrice">£0.00</p>

我希望如果元素的文本匹配£0.00,它会将其更改为“See Product”。我希望这是有道理的

2 个答案:

答案 0 :(得分:2)

您可以通过将函数传递到text

来实现
$('.price, .productPrice').text(function(index, text) {
    return !text || text == "£0.00" ? "See Product" : text;
});

当你传入一个函数时,jQuery会为每个元素调用一次函数,并将元素的文本设置为你返回的元素。 (注意第一个参数是索引,你不会使用它;第二个参数是你想要的那个。)

答案 1 :(得分:1)

尝试类似:

$('.price, .productPrice').each( function(i, el){
  if($(this).text() === "£0.00") {  $(this).text('See Product');  }
});