复制JQuery/Javascript函数

复制JQuery/Javascript函数,javascript,jquery,Javascript,Jquery,我有一个jquery/javascript函数,它创建一个数组,放置在表单的隐藏字段中。但是,这是一个嵌套表单,因此我需要多次调用此函数来填充所有子项的隐藏字段:test\u suite\u run[test\u runs\u attributes][//id][packages\u id]。这意味着每次我都需要使用不同的子id运行此函数 我添加了//id,以指示许多函数调用之间的唯一区别。我不知道如何复制此函数,而不手动复制多次,并为每个嵌套子实例将//id替换为索引0…n。这可以通过向jav

我有一个jquery/javascript函数,它创建一个数组,放置在表单的隐藏字段中。但是,这是一个嵌套表单,因此我需要多次调用此函数来填充所有子项的隐藏字段:
test\u suite\u run[test\u runs\u attributes][//id][packages\u id]
。这意味着每次我都需要使用不同的子id运行此函数

我添加了
//id
,以指示许多函数调用之间的唯一区别。我不知道如何复制此函数,而不手动复制多次,并为每个嵌套子实例将//id替换为索引0…n。这可以通过向javascript函数传递参数来实现吗

对不起,如果这有点混乱,我会很乐意解释更详细,如果需要的话

JQuery函数

$(document).ready(function () {

    arr = new Array();

    $(document).on('change', 'select[id ^="s_package//id"]', function () {
        var arr = $('select[id ^="s_package//id"]').map(function () {
            return this.value
        })

        result = ""

        for (j = 0; j < arr.length - 1; j++) {
            result += (arr[j] + ", ");
        }

        result += (arr[arr.length - 1])


        $("input[name='test_suite_run[test_runs_attributes][//id][packages_id]']").val(result);

    });
});
$(文档).ready(函数(){
arr=新数组();
$(文档)。在('change',选择[id^=“s_package//id”]”,函数(){
var arr=$('select[id^=“s_package//id”]).map(函数(){
返回此.value
})
result=“”
对于(j=0;j
您可以传递要在函数中使用的ID数组,并对其进行迭代:

function somethingMeaningful(ids) {
    for (var i = 0, l = ids.length; i < l; i++) {
        var id = ids[i];
        // do something with this id
    }
}

$(function() {
    somethingMeaningful(['id1', 'id2', 'idn']);
});

取而代之的是使用基于id的选择器。我要说的是,将选择器用作类,因为您正在使用的on()函数将自动将更改事件和函数绑定到将来使用该类创建的所有元素,这样您就不必再次重复此函数$(文档).on('change','some_class',function()
$(document).on('change', 'select[id^="s_package"]', function () {
    var id = $(this).attr('id').slice('s_package'.length);
    // Do stuff with real id
});