无法获取动态生成的ID

时间:2020-06-03 20:15:32

标签: javascript jquery mysql mongodb frontend

我正在尝试从数据库中获取显示的div元素的ID。 该ID是动态生成的,它与记录ID相对应,但是当我尝试通过click事件获取ID时,我仅获得第一个元素的ID,或者在其他情况下,获得动态字段的所有ID。

这是我的.js文件的代码片段:

        /* Every field element is dynamically generated */
        $('#data .fields[id^=field_]').click(async() => {
            $('form').attr("action", "http://xx.xx.7.205:3000/api/pedidos/modificar");
            const id = $(this).attr('id').slice('-')[1];
            const ret = new Buscar();
            const json = ret.buscar(id);
            llenarCamposFormulario(id, json);
            $('.anular').click(async() => {
                const ret2 = new eliminarPedido();
                const what = await ret2.buscar(id);
                console.log(what);
                resetFields();
            });
        });

谢谢!

1 个答案:

答案 0 :(得分:1)

如果div是动态生成的,则应更改处理程序以处理对当前内容和将来内容的点击。

$('#data').on('click', '.fields[id^=field_]', function() {/* on click open form */} )

$('#data').on('click', '.fields[id^=field_] .anular ', function() {/* on click cancel operation */} )

在分析操作中,只需重新计算ID和内容即可,而不是从打开的表单处理程序中重新使用它。

这样,您捕获了对#data的所有单击,并且仅在与第二个参数中的选择器匹配的被单击元素中调用了处理程序。按照以前的方式,您可以将处理程序添加到每个现有的div中,而稍后的div暂时不存在。

那应该成功! 编码愉快