jQuery将href附加到div中的多个单词

时间:2014-12-21 11:40:58

标签: javascript jquery replace append

我有一个带有类名(.product)的div,我想要做的是找到多个不同的单词,并为每个单词添加/替换它们用href链接或跨度等。

要附加多个不同的单词,因此很可能是foreach run。

我已经尝试了下面的代码但是不能坚持它只是替换脚本中的整个最后一个单词变量。

jQuery('.product').each(function(){
var word1 = jQuery(this).text().replace(/word1/g,"<span>word1</span>");
jQuery(this).html(word1);
});

jQuery('.product').each(function(){
var word2 = jQuery(this).text().replace(/word2/g,"<span>word1</span>");
jQuery(this).html(word2);
}); 

如果使用jQuery / JS无法做到这一点,那么我将如何扫描数据库文本区域的值/内容并替换foreach变量(word)并用href链接替换?

任何帮助都将不胜感激。

欢呼

2 个答案:

答案 0 :(得分:1)

你的尝试看起来不错,只是遗漏了一点。而不是更改text并将其推送到HTML中,尝试更改HTML中的文本并将HTML推回...并将正确的html放入(</span>)......

jQuery('.product').each(function(){
  var word1 = jQuery(this).html().replace(/word1/g,"<span>word1</span>");
  jQuery(this).html(word1);
});

jQuery('.product').each(function(){
  var word2 = jQuery(this).html().replace(/word2/g,"<span>word1</span>");
  jQuery(this).html(word2);
}); 

答案 1 :(得分:0)

我想你想要用<span>标签包装单词。您可以使用函数重载html并使用正则表达式替换单词来执行以下操作。 $0表示匹配的字词。

jQuery('.product').each(function() {
   $(this).html(function() {
      return $(this).text().replace(/\w+/g, "<span>$0</span>");
   });
});