Jquery + $.每个+动态操作+使用参数

Jquery + $.each + dynamic operation + using parameters

本文关键字:参数 操作 动态 每个 Jquery      更新时间:2023-09-26
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 data, function (index, data) {

其中"datos"是一个带有变量(set和get)的对象(codcli, name, apepat)我的意思是调用codcli I do:

   $. each (datos.codcli, function (index, data) {
}

但是这种方式是静态的。我想通过动态参数来做。

那么问题是如何传递参数才能成功实现呢?还是你做不到?总会有静电吗?

在上面的代码中我想做的是,但显然不起作用:

tipdat=".codcli"
   $. each (datos+tipdat, function (index, data) {
}

我想你是在找括号符号。

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) {
    //...
});