2010-07-13 4 views
0

rel 속성이 class으로 바뀝니다.jQuery replace가 작동하지 않습니다.

전체 코드-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 개 값을 지원)로이 줄은 작동하지 않습니다 당신은 직접 http://jsbin.com/efozi3/8/edit/

덕분에 코드를 편집 할 수 있습니다

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

.

+1

변경은 (? 사람들은 왜 가난한 속성을받을 자격 할 것을 무슨 짓을 이런 종류의 일을 위해'rel'을 남용 계속합니까?) – bobince

+0

@bobince : 검증하기를, 아마도 – SLaks

답변

5

믿거 나 말거나 자바 스크립트의 replace 함수는 검색 텍스트의 첫 번째 항목 만 바꿉니다.
모든 항목을 바꾸려면 g (G lobal) 플래그가있는 정규식을 전달해야합니다.

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

사람, 너는 싸우고있다! – Happy

+0

죄송합니다. 나는 [내 이전 대답] (http://stackoverflow.com/questions/3238129/jquery-rel-attribute/3238187#3238187)에서이 버크를 잊어 버렸습니다. – SLaks

+0

나는 문자열이 변하지 않을 때까지 루핑을 제외하고는 다른 방법이 없다고 생각한다. 나에게 바람 피는 것처럼 보이지 않는다. – Koen

관련 문제