2012-03-06 2 views
4

나는이 HTML 요소를 가지고 :왜이 간단한 자바 스크립트가 대시를 슬래시로 바꾸지 않습니까?

<div id='4-12-2012' class='date'>blah blah blah</div> 

내가 .date하는 클릭 이벤트를 바인딩, 그래서 그것을 클릭 할 때, 함수가 호출됩니다. 내 목표는 슬래시 대신 대시 (아이디)에서 날짜와 끝까지하는 것입니다 :이 훨씬 더 간단 할 수 없다

d = $(this).attr('id').replace('/-/g', '/'); 
alert(d); 

...하지만 경고로 표시되는 결과() 여전히 대시가 있습니다. "4-12-2012"... 여기서 완전히 분명한 것은 무엇입니까?! :-)

답변

6

질문에 대한 답변이 이미 게시되었지만 사이드 노트에이 상황에서 jquery를 사용할 이유가 없습니다.

http://jsperf.com/el-attr-id-vs-el-id/7

편집 : 수행중인 모든 여기 테스트에 좋은 참고가이

d = this.id.replace(/-/g, '/'); 

시도되지 않은 필요한 기능

를 호출하는 진드기를 제거하는 것을 잊었다

+0

jQuery를 사용할 필요가없는 regexp와 좋은 캐치에 대한 감사의 답변입니다. – Eric

5

이 시도 : 따옴표로 정규식을 넣지 마십시오

d = $(this).attr('id').replace(/-/g, '/') 
2

간단한 정규 표현식, as seen on this jsfiddle'을 제거

d = $(this).attr('id').replace(/-/g, '/'); 
+0

간단하게!! –

+0

이것은 첫 번째 대시 만 변경하여 슬래시가 아닌 아무 것도 변경하지 않습니다. – j08691

2

:

는 정규식 주위에

d = $(this).attr('id').replace(/-/g, '/'); 
+1

실제로, Konerak는 잘못되었습니다. 정규 표현식이 없으면 첫 번째 발생을 대체 할 것입니다.] – Konerak

관련 문제