Jquery替换第二和第三个单词

时间:2013-08-12 18:22:28

标签: jquery regex

我试图替换html元素中的第二个和第三个单词。

到目前为止,我可以使用此替换第二个单词:

jQuery("article#box-1 h2.join-box-head").each(function(i, v){
  newHTML = jQuery(this).html()
  .replace(/\s(.*?)\s/,'<span class="error">$1 </span>')
  jQuery(this).html(newHTML);
});

但我很难选择第三个单词

HTML

<article id="box-1">
    <h2 class="join-box-head">JOIN WITH YOUR FAMILY</h2>
    </article>

任何想法?

2 个答案:

答案 0 :(得分:2)

真正需要正则表达式吗?

jQuery("article#box-1 h2.join-box-head").each(function(i, v){
    var newHTML = jQuery(this).html().split(" ");
    for (var i = 1; i < 3; i++)
        newHTML[i] = '<span class="error">' + newHTML[i] + '</span>';
    jQuery(this).html(newHTML.join(" "));
});

或两者都在一个范围内

jQuery("article#box-1 h2.join-box-head").each(function(i, v){
    var newHTML = jQuery(this).html().split(" ");
    newHTML[1] = '<span class="error">' + newHTML[1];
    newHTML[2] = newHTML[2] + '</span>';
    jQuery(this).html(newHTML.join(" "));
});

答案 1 :(得分:0)

效率不高但速度快的解决方案是调用你提供的两次函数,因为当你替换第二个单词时,第三个单词就成了第二个单词。因此,如果您不想进行任何代码更改并且不关心性能效率,请调用相同的函数两次。

相关问题