JQuery заменить не работает - PullRequest
0 голосов
/ 13 июля 2010

Сценарий заменяет rel атрибуты на class.

Полный код - http://jsbin.com/efozi3/8/

Не работает для ссылок, где используется более 2 значений в rel.

Пример - первый элемент:

<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>

Эта строка не работает должным образом (поддерживает максимум 2 значения в rel):

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

Вы можете редактировать код непосредственно на http://jsbin.com/efozi3/8/edit/

Спасибо.

1 Ответ

5 голосов
/ 13 июля 2010

Верьте или нет, функция Javascript replace заменяет только первое вхождение текста поиска.
Чтобы заменить каждое вхождение, вам нужно передать регулярное выражение с g ( G lobal) flag.

Измените его на

return $('.' + elem.rel.replace(/\s+/g, ', .'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...