我可以用jquery更有效地编写这个javascript吗?

时间:2010-04-10 21:22:24

标签: 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';
            }
        }       
    }
}

5 个答案:

答案 0 :(得分:8)

更快,我不知道。清洁和跨浏览器:是的

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

答案 1 :(得分:3)

不,因为jQuery会解析代码中使用的jQuery选择器,所以速度会慢一些。

答案 2 :(得分:2)

您可以使用jQuery执行此版本:

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

所以,是的,你可以减少一点:)

如果你知道自己想要的父母是什么,请说<span>,你可以这样做:

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

答案 3 :(得分:0)

是的,可能。 jQuery有jQuery.ready()方法,它在DOM完成时执行该函数,而不是在加载所有图像时执行。请参阅:http://15daysofjquery.com/quicker/4/

答案 4 :(得分: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'); 
});