jQuery使用ajax创建后,从表中获取nth:child

时间:2018-06-16 22:28:19

标签: javascript jquery html

在下面的ajax中我在获取数据后填充并创建简单数据

$.ajax({
    method: 'GET',
    url: '/analyzePage/searchTag/' + tagName,
    contentType: false,
    processData: false,
    success: function (data) {
        console.log(data);

        setTimeout(function () {
            if (data.state == 'error') {
                ...
            }
            else {
                let table = '<div class="table-responsive pre-scrollable">';

                ...

                $.each(data.tags, function (key, value) {
                    table = table + '<tr class="searchTag-' + value.name + '">';
                    table = table + '<td style="padding: 6px 20px;">1</td>';
                    table = table + '<td style="padding: 6px 0px;">';
                    table = table + '<img src="' + value.profile_pic_url + '" class="img-circle img-sm" id="tagIamge"/></td>';
                    table = table + '<td style="padding: 6px 20px;">' + value.name + '</td>';
                    table = table + '<td style="padding: 6px 20px;">' + value.media_count + '</td>';
                    table = table + '<td>';
                    table = table + '<button type="button" class="btn btn-warning btn-icon btn-rounded legitRipple" id="searchTag-' + value.name + '">';
                    table = table + '<i class="icon-file-plus"></i>';
                    table = table + '</button>';
                    table = table + '</td>';
                    table = table + '</tr>';
                });

                ...

                $('.data').html(table);
            }
        }, 800);
    },
    error: function (data) {
        console.log(data);
    }
});

因为我有一个按钮id="searchTag-' + value.name + '",它最新td我希望获得此按钮所在的所有列,例如此tr有4 td }和最新的td我有这个按钮,然后我想在点击按钮后将其他td加入此tr

我的代码工作但它将所有tr放入我的表

$(document).on('click', "[id^='searchTag']", function () {
    let thisId = $(this).attr("id");
    let tagName = thisId.split("-")[1];
    $("[class^='" + $(this).attr("id") + "'] td:nth-child(3)").append("<span>Clicked</span>");
});

1 个答案:

答案 0 :(得分:1)

点击它后,是否要在按钮图标旁边添加跨度?

如果你这样做,你可以这样做:

$(document).on('click', "[id^='searchTag']", function () {
    $(this).closest('td').append("<span>Clicked</span>");
});
  

我想获得所有td哪个按钮进入此行

试试这个:

$(document).on('click', "[id^='searchTag']", function () {
    $(this).closest('tr').find('td'); // returns all "td" elements
});