从dinamic表中获取a的值,但我只得到第一个的值

时间:2015-11-13 22:10:15

标签: jquery html jsonresponse

当我点击它时,我试图得到一行的值,但它只得到第一个tr的值,即使我点击其他tr,如何点击tr的值得到。 我用jsonresponse填满了我的桌子。这是我的代码。

这是我的代码。

register.html

<table class="table table-striped table-hover table-bordered" style="width:100%" border="0" id="miembrotb">

JsonResponse.js

$("#buscar_paciente").click(function(e) {
        var completo = $("#nombre").val();

        var input_string = completo;
        $.ajax({    
            url: "/datospacientejson",
            type: "POST",
            dataType: "json",
            data: {
                nombre: input_string,
                csrfmiddlewaretoken: '{{ csrf_token }}'
            },
             success: function (json) {
                var jsonResponse = eval(json);
                    $("#miembrotb").empty();
                    $("#miembrotb").append('<tr><th>ID</th><th>NOMBRE</th><th>FECHA DE NACIMIENTO</th></tr>');
                    $.each(jsonResponse, function (index, element) {
                        html = '<tr><td class="td1">'+jsonResponse[index]["fields"]["folio"]+'</td><td>'+jsonResponse[index]["fields"]["nombre"]+' '+jsonResponse[index]["fields"]["apellido_paterno"]+'<td>'+jsonResponse[index]["fields"]["fecha_nacimiento"]+'</td>'+'</tr>'
                        $("#miembrotb").append(html);
                    });
                },
            error: function(xhr, errmsg, err) {
                alert(xhr.status + "ERROR EN BUSQUEDA DE INFORMACION DEL PACIENTE: " + xhr.responseText);
            }
        });
        return false;
});



//ON CLICK FUNCTION
  $("#miembrotb").click(function(){//click anywhere in a row
    alert($(this).find("tr").html());
  });

enter image description here

2 个答案:

答案 0 :(得分:0)

您需要将click事件附加到ID为tr的表格中的特定miembrotb元素

$("#miembrotb tr").click(function(){//click anywhere in a row
       $(this).html();
  });

答案 1 :(得分:0)

您正在做的是检查用户是否点击整个表,而不是特定行。这样,您就不知道点击了哪一行,因此无法从该行中获取信息。

此外,当您执行$(this).find("tr")时,您将获得一个包含填充查询的所有元素的数组,因此您将获得该表所具有的每一行。

您需要的是,在行中添加一个类,然后使用以下代码将eventlistener添加到它们中:

$('.table-class').click(function(){
    $(this).html();
});

这样,您就可以从您单击的行中获取html。此外,如果您动态创建它们,则可能需要在创建事件侦听器后附加事件侦听器。

希望这会有所帮助。