如何创建一个影响带前缀和后缀的id的jquery函数?

时间:2015-07-13 06:37:56

标签: javascript jquery jquery-selectors

我需要像时间表一样记录日复一日。假设我有这个jQuery来计算或做某事

$('#report_time_hours').change(function() {
    $('[name=reporttime]').val(/* new value */);
});
$('#report_time_minutes').keyup(function() {
    $('[name=reporttime]').val(/* new value */);
});
$('#report_time_period').change(function() {
    $('[name=reporttime]').val(/* new value */);
});

这些功能被视为一天的一组功能。

我有7天(从星期一到星期日),在HTML部分,我应该通过添加前缀来重命名ID和名称,例如mon_reportnamemon_report_time_hourssun_report_time_hours等...

如果我使用

$('[id$=_report_time_hours]')

这肯定会影响具有该后缀的id的所有字段,无论前缀(mon,tue等)。

那么,我怎样才能使这组函数只影响类似的前缀?

1 个答案:

答案 0 :(得分:0)

以身份证号码为例:

$('#report_time_hours1').change(function() {
    $('[name=reporttime]').val(/* new value */);
});
$('#report_time_minutes1').keyup(function() {
    $('[name=reporttime]').val(/* new value */);
});
$('#report_time_period1').change(function() {
    $('[name=reporttime]').val(/* new value */);
});

然后你可以将每一天表示为数字1 - 星期日等等。

然后你的代码应该是这样的:

for(i=1;i<=7 ; i++)
{
    $('#report_time_hours' + i).change(function() {
        $('[name=reporttime]').val(/* new value */);
    });
    $('#report_time_minutes1' + i).keyup(function() {
        $('[name=reporttime]').val(/* new value */);
    });
    $('#report_time_period1' + i).change(function() {
        $('[name=reporttime]').val(/* new value */);
    }); 
}

这应该可以解决问题。

虽然我会为你的所有数据上课,然后它应该更简单:

    $('classForHours').change(function() {
        $('[name=reporttime]').val(/* new value */);
    });
    $('classForMinutes').keyup(function() {
        $('[name=reporttime]').val(/* new value */);
    });
    $('classForPeriods' + i).change(function() {
        $('[name=reporttime]').val(/* new value */);
    }); 

这也可以解决问题