您认为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';
}
}
}
}
答案 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');
});