Как мне получить доступ к значению td (x3) того же tr (x1), если я нажму на tr (x1 of td (x2))? - PullRequest
1 голос
/ 27 января 2020

Как мне получить доступ к значению td (x3) того же tr (x1), если я нажму на tr (x1 of td (x2))?

$(document).ready(function () {
    $.ajax({
        url: '/api/Usuario/GetPermisosRolPorUsuario',
        method: 'GET',
        dataType:'JSON',
        data: { NitEmpresa,NombreUsuario },
        headers: {
            'Authorization': 'Bearer '
                + sessionStorage.getItem("accessToken")
        },
        success: function (data) {
            debugger
            $('#tblBody').empty();
            $.each(data, function (index, value) {
                var row =
                    $('<tr>'
                        +'<td id="IdUsuario">'+ value.IdUsuario + '</td>'
                        + '<td id="RolId">'   + value.RolId     + '</td>'
                        + '<td id="Estado" >' + value.Estado + '</td>'
                        + '<td>' + value.Rol + '</td>'
                        + '<td>' + value.DescripcionRol + '</td>'
                        + '<td>' + value.NombreUsuario + '</td>'
                        + '<td>' + value.FullName + '</td>'
                        + '<td>' + value.licenciaEmpresa + '</td>'
                        + '<td>' + value.RazonSocial + '</td>'
                        + '<td>' + value.NitEmpresa + '</td>'
                        + '<td>' + value.Correo + '</td>'
                        + '<td>' + value.Celular + '</td>'
                        + '<td>' + formatDate(value.licenciaFechaExpire) + '</td>'
                    );
                $('#tblData').append(row);
            });

Спасибо, Мне удалось получить доступ к братьям 'td' следующим образом:

                    $('tr td:nth-child(3)', '#tblData').click(function () {

возвращается к отцу в поисках его братьев

                            var $thisRow = $(this).closest('tr')

brothers td

                            IdUsuario = $('td:first', $thisRow).text();
                            RolId = $('td:nth-child(2)', $thisRow).text();
                            Estado= $('td:nth-child(3)', $thisRow).text();

// предупреждение о печати значения оповещения (IdUsuario + '-' + RolId + '-' + Estado);

            });
        },
        error: function (jQXHR) {
            toastr.error('Sistemas Infinitos Informa: '+jQXHR.responseText);
        }
    });
});

1 Ответ

1 голос
/ 31 января 2020
            $.each(data, function (index, value) {
            var row =
                $('<tr>'
                    +'<td id="IdUsuario">'+ value.IdUsuario + '</td>'
                    + '<td id="RolId">'   + value.RolId     + '</td>'
                    + '<td id="Estado" >' + value.Estado + '</td>'

Во-первых, каждый элемент в DOM должен иметь уникальный идентификатор. Повторяя один и тот же идентификатор несколько раз, я не уверен, что ваши события on('click') будут прикреплены во всех браузерах и вернут искомое значение. Вместо этого ваше click событие должно выглядеть примерно так:

 $('tr', '#tblData').click(function () {
     var id1 = $('td:first-child', this).text();
     var id2 = $('td:nth-child(2)', this).text();
     var id3 = $('td:nth-child(3)', this).text();
     ...
 }

или если вы хотите разрешить только клик по первому TD:

 $('tr td:first-child', '#tblData').click(function () {
     var $thisRow = $(this).closest('tr')
     var id1 = $(this).text();
     var id2 = $('td:nth-child(2)', $thisRow).text();
     var id3 = $('td:nth-child(3)', $thisRow).text();
     ...
 }
...