2010-04-10 2 views
2

jquery가 다음 스크립트가 더 빨리 작동하도록 도와 줄 수 있다고 생각하십니까? 감사합니다.jquery로이 자바 스크립트를보다 효율적으로 작성할 수 있습니까?

window.onload=function colorizeCheckedRadios(){      
    var inputs = document.getElementsByTagName("input"); 
    if (inputs) { 
     for (var i = 0; i < inputs.length; ++i) { 
      if(inputs[i].checked&&inputs[i].type=="radio"){ 
       inputs[i].parentNode.parentNode.style.backgroundColor='#FCE6F4'; 
      } 
     }  
    } 
} 

답변

8

빨리, 나도 몰라. 클리너 및 크로스 브라우저 : 예

$(function() { 
    $('input:radio:checked').parent().parent().css('background-color', '#FCE6F4'); 
}); 
+1

+1 청결과 호환성. 더 빠르고, 가능성이 높지는 않습니다 -'querySelectorAll()'을 사용할 수없는 브라우저에서는 그렇지 않습니다. –

+0

모든 빠른 답변 주셔서 감사합니다! 코드를 구현했는데 조금 더 빨라졌습니다. Firefox 3.6입니다. 고마워요! 그것은 굉장 깨끗한 코드입니다. – Haluk

+0

'querySelectorAll'을 구현하는 브라우저에서는 속도 차이가 무시할 수있을지라도 실제로는 조금 더 빠를 수도 있습니다. –

2

당신은 jQuery를 함께이 버전을 수행 할 수 있습니다 그래서

$(function() { 
    $(":radio:checked").parent().parent().css('background-color', '#FCE6F4'); 
}); 

는, 그래, 당신은 아래로 약간 :)

당신은 알고 슬림 수 있다면 무엇을 원하는 부모는 <span>이라고 말하면 다음과 같이 할 수 있습니다.

$(function() { 
    $(":radio:checked").closest('span').css('background-color', '#FCE6F4'); 
}); 
0

예. jQuery에는 DOM이 완료되면 함수를 실행하는 jQuery.ready() 메소드가 있고 모든 이미지가로드 될 때가 아닙니다. 참고 : http://15daysofjquery.com/quicker/4/

+0

왜 downvote, 제발 ...? 설명은 저와 다른 것들을 가르쳐 줄 것입니다. – Dor

3

아니요. jQuery가 코드에 사용 된 jQuery 선택기를 구문 분석하므로 속도가 느려질 수 있습니다.

+1

속도가 현저하게 차이가 나야합니다. 특히 jQuery가 작성된 방법이 그렇기 때문에 더욱 그렇습니다. –

+0

@Josh K : 네가 맞아도별로 다르지 않지만 느려질거야. 이 질문은 jQuery가 스크립트를보다 빠르고 효율적으로 만들 수 있는지 질문했습니다. 그 질문에 대한 대답은 '아니오'입니다. –

+0

정말로 셀레터가 걱정된다면,'$ (document.getElementsByTagName ('input')) ... '과 같이 작동 할 것이다. –

0

나머지 웹 페이지의 대부분을 제외시키는 데 도움이되는 명명 된 조상 요소가 있으면 선택기 속도가 크게 빨라집니다.

... tons of html 
<div id="radioButtonList"> 
... the various radio button divs or what nots 
</div> 
... tons more html 

$(function() { 
    $("#radioButtonList :radio:checked").parent().parent().css('background-color', '#FCE6F4'); 
}); 
관련 문제