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