我有一个动态生成的表单,并且具有动态生成的id(以及可能的类)。表格是相同的,但他们在最后加上相关的ID。
如何选择每组并将代码应用于每一组?
switch(id_type_champ)
{
case 1:
$('#header-right-container').append(''+nom_champ+'<input type="text" id='+Id+' > ').trigger("create");
break;
case 2:
$('#header-right-container').append(''+nom_champ+'<input type="text" id='+Id+' > ').trigger("create");
break;
case 3:
$('#header-right-container').append(''+nom_champ+'<input type="date" id='+Id+' OnClick="aff_date(\'' + Id + '\')">').trigger("create");
break;
case 4:
$('#header-right-container').append(''+nom_champ+'<select id='+Id+' ><option value=0></option></select>').trigger("create");
v++;
break;
case 5:
$('#header-right-container').append(''+nom_champ+'<select id='+Id+' ><option value=0> </option></select> ').trigger("create");
v++;
break;
case 6:
$('#header-right-container').append(''+nom_champ+'<select id='+Id+' ><option value=0> </option></select> ').trigger("create");
v++;
break;
case 7:
$('#header-right-container').append(''+nom_champ+'<select id='+Id+' ><option value=0> </option></select> ').trigger("create");
v++;
break;
case 8:
$('#header-right-container').append(''+nom_champ+'<select id='+Id+' ><option value=0> </option></select> ').trigger("create");
v++;
break;
case 9:
$('#header-right-container').append(''+nom_champ+'<select id='+Id+' ><option value=0> </option></select> ').trigger("create");
v++;
break;
default:
$('#header-right-container').append(''+nom_champ+'<select id='+Id+' ><option value=0> </option></select> ').trigger("create");
v++;
break;
}
代码可以执行选项
的添加答案 0 :(得分:0)
你可以追加这样的案例:
switch (id_type_champ) {
case 1:
case 2:
$('#header-right-container').append(nom_champ + '<input type="text" id=' + Id + ' > ').trigger("create");
break;
case 3:
$('#header-right-container').append(nom_champ + '<input type="date" id=' + Id + ' OnClick="aff_date(\'' + Id + '\')">').trigger("create");
break;
// The cases below can be removed, except dor "default"
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
// ^ These can be removed.
default:
$('#header-right-container').append(nom_champ + '<select id=' + Id + ' ><option value=0> </option></select> ').trigger("create");
v++;
break;
}
案例1到3将创建input
,以及4到9,默认为select
。
但是,您可以删除案例4-9,因为默认情况下会处理这些案例。
此外,不需要在空字符串前加nom_champ
('' + nom_champ
)。我假设这用于将nom_champ
转换为字符串,但附加的'<input/select'
将用于处理。
答案 1 :(得分:0)
为此创建自己的插件是理想的,例如您的原始功能:
function ListIds(var Id) {
switch(id_type_champ)
{
case 1:
$('#header-right-container').append(''+nom_champ+'<input type="text" id='+Id+' > ').trigger("create");
break;
case 2:
$('#header-right-container').append(''+nom_champ+'<input type="text" id='+Id+' > ').trigger("create");
break;
case 3:
$('#header-right-container').append(''+nom_champ+'<input type="date" id='+Id+' OnClick="aff_date(\'' + Id + '\')">').trigger("create");
break;
case 4:
$('#header-right-container').append(''+nom_champ+'<select id='+Id+' ><option value=0></option></select>').trigger("create");
v++;
break;
case 5:
$('#header-right-container').append(''+nom_champ+'<select id='+Id+' ><option value=0> </option></select> ').trigger("create");
v++;
break;
case 6:
$('#header-right-container').append(''+nom_champ+'<select id='+Id+' ><option value=0> </option></select> ').trigger("create");
v++;
break;
case 7:
$('#header-right-container').append(''+nom_champ+'<select id='+Id+' ><option value=0> </option></select> ').trigger("create");
v++;
break;
case 8:
$('#header-right-container').append(''+nom_champ+'<select id='+Id+' ><option value=0> </option></select> ').trigger("create");
v++;
break;
case 9:
$('#header-right-container').append(''+nom_champ+'<select id='+Id+' ><option value=0> </option></select> ').trigger("create");
v++;
break;
default:
$('#header-right-container').append(''+nom_champ+'<select id='+Id+' ><option value=0> </option></select> ').trigger("create");
v++;
break;
}
}
然后,插件调用此代码:
(function($){
$.fn.listIdValue = function() {
return this.each(function() {
ListIds($(this).id)
});
};
})(jQuery);
然后,您可以在元素或元素列表上调用此函数,例如:
$('#element').listIdValue();
或
$('.elementClass').listIdValue();