Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我怎样才能把它抽象出来,每个函数?_Javascript_Each - Fatal编程技术网

Javascript 我怎样才能把它抽象出来,每个函数?

Javascript 我怎样才能把它抽象出来,每个函数?,javascript,each,Javascript,Each,我在一些javascript中有一个switch-case语句,然后需要运行相同的。每个函数,只需更改一个参数 $('#item_type').change(function() { switch(this.value) { case 'CH': $('#item_code').empty(); $.each(cheeses, function(key, value) {

我在一些javascript中有一个switch-case语句,然后需要运行相同的。每个函数,只需更改一个参数

$('#item_type').change(function() {
        switch(this.value) {
            case 'CH':
                $('#item_code').empty();
                $.each(cheeses, function(key, value) {   
                     $('#item_code')
                    .append($("<option></option>")
                    .attr("value",key)
                    .text(value));
                }); 
                break;

            case 'Z':
                $('#item_code').empty();
                $.each(sizes, function(key, value) {   
                     $('#item_code')
                    .append($("<option></option>")
                    .attr("value",key)
                    .text(value));
                }); 
                break;
        }

    });

您可以将每个函数存储在变量中,然后将其传递给。每个函数如下所示:

case 'CH':
    $('#item_code').empty();
    doEach(cheeses);
    break;
case 'Z':
    $('#item_code').empty();
    doEach(sizes);
    break;
var addOptions = function(key, value) {   
                 $('#item_code')
                .append($("<option></option>")
                .attr("value",key)
                .text(value));
            };

$('#item_type').change(function() {
    switch(this.value) {
        case 'CH':
            $('#item_code').empty();
            $.each(cheeses, addOptions); 
            break;

        case 'Z':
            $('#item_code').empty();
            $.each(sizes, addOptions); 
            break;
    }

});

祝你好运

您可以将每个函数存储在变量中,然后将其传递给。每个函数如下所示:

case 'CH':
    $('#item_code').empty();
    doEach(cheeses);
    break;
case 'Z':
    $('#item_code').empty();
    doEach(sizes);
    break;
var addOptions = function(key, value) {   
                 $('#item_code')
                .append($("<option></option>")
                .attr("value",key)
                .text(value));
            };

$('#item_type').change(function() {
    switch(this.value) {
        case 'CH':
            $('#item_code').empty();
            $.each(cheeses, addOptions); 
            break;

        case 'Z':
            $('#item_code').empty();
            $.each(sizes, addOptions); 
            break;
    }

});

祝你好运

非常简单的方法是:

function doEach(collection) {
    $.each(collection, function(key, value) {   
        $('#item_code')
            .append($("<option></option>")
            .attr("value",key)
            .text(value));
    });
}
或者您可以使用非常简单的插件:

$.fn.populate = function (collection) {
    return this.each(function () {
        var $self = $(this).empty();
        $.each(collection, function (key, value) {
            $('<option>').attr('value', key).text(value).appendTo($self);
        });
    });
};

$('#item_type').change(function () {
    switch (this.value) {
        case 'CH':
            $('#item_code').populate(cheeses);
            break;

        case 'Z':
            $('#item_code').populate(sizes);
            break;
    }
});

非常简单的方法是:

function doEach(collection) {
    $.each(collection, function(key, value) {   
        $('#item_code')
            .append($("<option></option>")
            .attr("value",key)
            .text(value));
    });
}
或者您可以使用非常简单的插件:

$.fn.populate = function (collection) {
    return this.each(function () {
        var $self = $(this).empty();
        $.each(collection, function (key, value) {
            $('<option>').attr('value', key).text(value).appendTo($self);
        });
    });
};

$('#item_type').change(function () {
    switch (this.value) {
        case 'CH':
            $('#item_code').populate(cheeses);
            break;

        case 'Z':
            $('#item_code').populate(sizes);
            break;
    }
});

函数doEachcollection{$.eachcollection,…;}。谢谢,这满足了我的需要。如果您作为答案发布,我将接受.function doEachcollection{$.eachcollection,…;}。谢谢,这满足了我的需要。如果你发帖作为答复,我会接受。