function Controles(contro, nomtab, numtab, action, nomcla, tipdat, lista, datos) {
$(document).on('click', '.'+contro+' #IZQTOD', function(event) {
$.getJSON(action+'&rows='+rows+'&page=1', function(datos) {
var nuevafila;
$.each(datos+tipdat, function(index, data) {
nuevafila = nuevafila + "<tr class='Fila-Grid-"+nomcla+"' id='" + numtab + (index + 1) + "'>";
nuevafila = nuevafila + "<td class='Columna1'>" + (index + 1) + "</td>";
var list = lista.split("-");
for (var j = 1; j < list.length; j++) {
nuevafila = nuevafila + "<td class='Borde-'>" + data+list[j] + "</td>";
}
nuevafila = nuevafila + "</tr>";
});
$('#'+nomtab+' tr:eq(1)').after(nuevafila);
});
});
}
我希望将这段代码作为javascript的函数运行,以便重用代码。 对我不起作用的部分是每个部分: $。每个(+ tipdat数据,函数(索引,数据){
“datos”是带变量的对象(set和get)(codcli,name,apepat) 我的意思是打电话给codcli:
$. each (datos.codcli, function (index, data) {
}
但这种方式是静态的。我想通过动态参数来做。
那么问题是如何传递参数才能成功实现?或者是你不能做到的?永远都会有静态的?
在我上面的代码中我想做的是,但显然不起作用:
tipdat=".codcli"
$. each (datos+tipdat, function (index, data) {
}
答案 0 :(得分:1)
我认为你正在寻找括号表示法。
var tipdat = "codcli";
$.each(datos[tipdat], function (index, data) {
//...
});
与:
相同$.each(datos.codcli, ...
如果你的字符串有多个属性,我会这样做:
var tipdat = "codcli.cod";
var objToIterate = datos;
var parts = tipdate.split('.');
for(var i = 0; i< parts.length; i++) {
objToIterate = objToIterate[parts[i]];
}
$.each(objToIterate, function (index, data) {
//...
});