2013-02-13 142 views
1

以下代码我已经为内联样式编写,而不是我需要使用jquery .addClass方法从不同的.css文件提供类。我怎样才能做到这一点?添加类而不是内联样式

$(keywords).each(function(){     
     var pattern = new RegExp("("+this+")", ["i"]);    
     var rs = "<span style='background-color:#FF6666;font-weight:bold'>$1</span>"; 
     if(el.length > 0){ 
      el.html(el.html().replace(pattern, rs)); 
     } 

    });  
+0

你不必像这样替换,在我建议解决方案之前,你可以吗?租赁显示你正在尝试执行此操作的HTML代码?或者代码中的'keywords','el'究竟是什么。 – KBN 2013-02-13 12:15:44

回答

1
$(keywords).each(function(el){     
    $(el).addClass('yourClass'); 
}); 
+0

将它修改为这个'$(el).addClass('yourClass')。attr(“style”,“”);'并且在添加class之后将清除内联样式。 – KBN 2013-02-13 12:19:27

0

如果您需要的款式新创建的span元素只是class="className"取代style="...",没有必要使用addClass

$(keywords).each(function(){     
     var pattern = new RegExp("("+this+")", ["i"]);    
     var rs = "<span class="class">$1</span>"; 
     if(el.length > 0){ 
      el.html(el.html().replace(pattern, rs)); 
     } 
    }); 

或者,如果你必须设置类不同的对象,只是做

$("selector").addClass("className") 
+0

非常感谢,var rs =“ $ 1”;事情奏效了。 – ShriM 2013-02-13 12:59:52

+0

@ user2068237请参阅[本](http://meta.stackexchange.com/q/5234/196720)。 JFYI。并欢迎) – 2013-02-13 13:04:30

+0

除此之外,我还面临一个问题 - 通过应用上述更改,我可以突出显示第一次出现的关键字,而不是后面的一次。 – ShriM 2013-02-14 06:55:23

相关问题