jQuery替换不起作用

时间:2010-07-13 16:03:50

标签: jquery replace

脚本将rel属性替换为class

完整代码 - http://jsbin.com/efozi3/8/

对于rel中使用了2个以上值的链接,它不起作用。

一个例子 - 第一项:

<a class="s1" rel="t1 t2 t3" href="#">One</a>

前三个 <li> 应该变为蓝色,但现在只有第一个。

 <li class="t1">
     <strong>1</strong>
 </li>
 <li class="t2">
      <strong>2</strong>
 </li>
 <li class="t3">
      <strong>3</strong>
 </li>

此行无法按预期工作(支持rel中的最多2个值):

return $('.' + elem.rel.replace(' ', ', .'));

您可以直接在http://jsbin.com/efozi3/8/edit/

上修改代码

感谢。

1 个答案:

答案 0 :(得分:5)

信不信由你,Javascript的replace函数只替换第一次出现的搜索文本。
要替换每个匹配项,您需要使用带有g G lobal)标记的正则表达式。

将其更改为

return $('.' + elem.rel.replace(/\s+/g, ', .'));