Javascript 我怎样才能把它抽象出来,每个函数?
我在一些javascript中有一个switch-case语句,然后需要运行相同的。每个函数,只需更改一个参数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) {
$('#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,…;}。谢谢,这满足了我的需要。如果你发帖作为答复,我会接受。