2013-05-06 4 views
5

저는 대부분의 초보 웹 개발자들이 jQuery를 사용하는 것과 같지만, 더 자주 js를 사용하기 시작했습니다. 그것은 내가 이런 식으로 할 수있는 요소 클래스를 얻을 필요가있는 경우, 예를 들어, jQuery를 범위에 깨끗한 JS를 사용하는 신 연습 : 그래서 여기에서 제 질문은요소 속성을 얻는 가장 좋은 방법은 무엇입니까?

jQuery('div#grid a').click(function(event){ 
    event.preventDefault(); 
    console.log(this.getAttribute('class')); 
    console.log(this.className); 
    console.log(jQuery(this).attr('class')); 
}); 

그러나 가장 좋은 방법은 무엇입니까?

+6

'최고'를 정의하십시오. 성능 측면에서 'className' 속성에 직접 액세스하는 것이 가장 좋습니다 (함수를 호출하지 않고 객체를 만들지 않음). – raina77ow

+2

...이 경우 코드 길이와 가독성면에서 최적입니다. 물론 그것은 동료 개발자가'className '이 무엇인지 알 필요가 있음을 의미합니다. jQuery 전용 표현식은 그렇지 않은 사람들을 더 잘 설명합니다. – Bergi

+0

정확합니다. 여전히 나는 모든 기존 구현에서'Element.className'가'Element.getAttribute ('class')와 비교하여 우승 할까 궁금합니다.) – raina77ow

답변

3

그것은 세 가지 중 가장 빠른 때문에 this.className를 사용하는 것이 좋습니다. 실행할 수있는 실행 데모는 다음과 같습니다. jquery attr(class) vs js.className

className 속성이 가장 빠른 테스트를 실행 한 후 확인할 수 있습니다.

3

예, jQuery 범위에서 깨끗한 js를 사용하는 것이 좋습니다. 이것이 DOM을 사용한 기본 작업이며 더 빠르게 작동하기 때문입니다.

Perfomance Test

+0

Nice >> !!! 데모 >>> – PraJen

2

동일한 작업을 수행하기 위해 jQuery 함수 호출을 작성하는 대신 기본 스크립트를 사용하여 성능을 향상시키는 것이 항상 있습니다.

그러나이 이득은 적은 수의 요소에 대해서는 감지 할 수 없습니다. 따라서 트레이드 오프는 더 단순 해지고, 더 읽기 쉬운 코드와 UI에 많은 영향을 미치지 않을 수있는 이득을 얻을 수 있습니다.

관련 문제