2012-04-02 4 views
2

이상한 jQuery 문제가 있습니다.jQuery attr 반환 유형의 최근 변경 사항은 무엇입니까?

사이트가 최근에 왜 부러 졌는지 알아 내려고했습니다. 최신 버전의 jQuery를 CDN에서로드하고 attr과 같은 기능을 포함하여 자유롭게 사용할 수 있습니다. jQuery에 대한 경험이 거의 없습니다. 나는 attr이 고장났다는 말을 들었고, 성능이 좋지 않은 것을 보아서 결코 사용하지 않습니다.

어쨌든이 코드에는 foo = $(this).attr('class').split(' ')[0]과 같은 것이 있으며 최근에는 모두 파손되었습니다. 분명히 attr이 String을 반환하는 데 사용되어 이제는 jQuery 객체를 반환합니다. 이런 식의 코드를 조금 더 합리적인 foo = this.className.split(' ')[0]으로 바꾸는 것은 간단합니다.하지만 내가 잘못된 방향으로 가고 있는지 궁금합니다.

제 질문은 jQuery 구성 설정이 attr이 이전 버전과 동일하게 작동하고 문자열을 반환하도록 설정합니까? 그렇지 않다면이 문제를 겪은 다른 사람이 있습니까? 어떻게 처리 했습니까?

+0

['.attr()가'] (http://api.jquery.com/attr/) 여전히 문자열을 반환합니다 .. –

+0

흠은 ... 최신 jQuery로 나를 위해 잘 작동 1.7.2 here http://jsfiddle.net/elclanrs/MRCNt/ – elclanrs

+1

참고로, 첫 번째 클래스 이름을 참조하면 일반적으로 'foo = this.className.split (' ') [0]도 마찬가지입니다. '문제를 요구하고있다. 코드의 추가 및 제거가 시작되면 클래스 이름의 순서가 보장되지 않습니다. jQuery를 사용하여, 특정 클래스가 존재 하는지를 탐지하는 올바른 방법은 hasClass()이다. – jfriend00

답변

1

짧은 대답은 아니오입니다.

긴 대답은 (아마도 이것을 수행하는 가장 좋은 방법은 아닙니다. * thanks @GGG) JQuery가 .prop()를 리팩터링하는 방식과 관련이있는 것 같습니다. 버전 1.6에서. 이전 버전으로 돌아 가지 않고 JQuery에 동작을 변경하도록 요청할 수 없습니다.

심판 : http://api.jquery.com/prop/