我在某些javascript中有一个switch case语句,然后需要运行相同的.each
函数,只需更改参数即可。
$('#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;
}
});
如何更改内容,使
.each
函数仅定义一次,并且只能在各种情况下调用,如下所示:case 'CH':
$('#item_code').empty();
doEach(cheeses);
break;
case 'Z':
$('#item_code').empty();
doEach(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;
}
});
关于javascript - 如何提取此.each函数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26169869/