1

我试图替换 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>

有任何想法吗?

4

2 回答 2

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(" "));
});
于 2013-08-12T18:34:52.983 回答
0

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

于 2013-08-12T18:24:53.673 回答