jQuery找到并替换第二个

时间:2011-06-17 16:13:04

标签: javascript jquery

我想知道如何在div中查找和替换某些文本,但我想找到并替换该文本的第二次出现。例如:“你刚刚添加了一个项目,请删除此项目”,所以我想找到第二个“项目”并用我选择的任何文本替换它。

JS:

var compareCount = $('.compareWidget').find('.compareItem').length;

if (compareCount >= 2) {
    $('.message').find('.count').text(compareCount);
    $('message').html().replace('item', 'items');
}

$('.message').slideDown("Fast");

setTimeout(function () {
    $('.message').slideUp("Fast");
}, 5000);

HTML:

<div id="alertMessage">
    <div class="message">
        <span>You just added a item to compare, you currently have <span class="count">1</span> item to compare</span>
    </div>
</div>

2 个答案:

答案 0 :(得分:2)

“您目前有1项要比较” 您想将项目转换为项目吗?

您可以使用正则表达式执行此操作,也可以将其包装到元素中并抓住它。

<span class="count">1</span> <span class="type">item</span> to compare</span>

 $('.message').find('.type').text("items");

答案 1 :(得分:2)

使用正则表达式

function replaceMatch(originalString, searchFor , replaceWith, matchNumber)
{
  var match = 0;
  return originalString.replace(searchFor, function(found){
                     match++;
                     return (match===matchNumber)?replaceWith:found;
                   },'g');
}

并将其称为

var msg = $('.message');
msg.html( replaceMatch( msg.html(), 'item', 'items', 2) );

demo http://jsfiddle.net/gaby/crhvA/