需要jQuery重构帮助。将数组作为参数传递?

时间:2011-02-04 20:19:42

标签: jquery

嗨,我有这个js,我想重构:


if (jQuery("#monOffHrsFrm").val() != '' && jQuery("#monOffHrsTo").val() != '') {
    jQuery("#monOffHrsFrm, #monOffHrsTo").removeClass("validationError");
}
if (jQuery("#tueOffHrsFrm").val() != '' && jQuery("#tueOffHrsTo").val() != '') {
    jQuery("#tueOffHrsFrm, #tueOffHrsTo").removeClass("validationError");
}
if (jQuery("#wedOffHrsFrm").val() != '' && jQuery("#wedOffHrsTo").val() != '') {
    jQuery("#wedOffHrsFrm, #wedOffHrsTo").removeClass("validationError");
}
if (jQuery("#thuOffHrsFrm").val() != '' && jQuery("#thuOffHrsTo").val() != '') {
    jQuery("#thuOffHrsFrm, #thuOffHrsTo").removeClass("validationError");
}
if (jQuery("#friOffHrsFrm").val() != '' && jQuery("#friOffHrsTo").val() != '') {
    jQuery("#friOffHrsFrm, #friOffHrsTo").removeClass("validationError");
}
if (jQuery("#satOffHrsFrm").val() != '' && jQuery("#satOffHrsTo").val() != '') {
    jQuery("#satOffHrsFrm, #satOffHrsTo").removeClass("validationError");
}
if (jQuery("#sunOffHrsFrm").val() != '' && jQuery("#sunOffHrsTo").val() != '') {
    jQuery("#sunOffHrsFrm, #sunOffHrsTo").removeClass("validationError");
}

我怎样才能通过[mon,tue,wed,thur,fri,sat,sun]数组并用几行来处理它?

由于

2 个答案:

答案 0 :(得分:3)

var days = ['mon','tue','wed','thu','fri','sat','sun'];
jQuery.each(days,function(e,day){
  var a = '#'+day+'OffHrsFrm', b = '#'+day+'OffHrsTo';
  if (jQuery(a).val() != '' && jQuery(b).val() != ''){
    jQuery([a,b].join(',')).removeClass('validationError');
  }
});

或者@Yads指出:

var days = ['mon','tue','wed','thu','fri','sat','sun']; 
for (var d = 0; d < days.length; d++){
  var a = '#'+days[d]+'OffHrsFrm', b = '#'+days[d]+'OffHrsTo';
  if (jQuery(a).val() != '' && jQuery(b).val() != ''){
    jQuery([a,b].join(',')).removeClass('validationError');
  }
}

我会想。 (现在测试一下)

答案 1 :(得分:0)

将日期存储在JavaScript array中并使用jQuery's each()函数进行迭代。