如何从jquery填充表中提取td值

时间:2017-12-28 19:06:23

标签: javascript jquery ruby-on-rails

我有一个jquery生成的表,点击后我想从点击的td中提取值。我可以使用html生成的表来执行此操作,但不能生成jquery生成的表。帮助,这是我的代码:

$(function() {
$('#searchpartno').keyup(function() {
    var item = $(this).val();

    $.ajax({
        "url": "/searchpartno",
        "data": {"partnumber":item},
        "type": "get",
        "dataType": "json",
        "success": function(items) {
            $('#partnumber_tbody').empty();
            var clearHTML = '<tr>' +'<td></td>' +'</tr>';
            var trHTML = '';
            $.each(items, function (i, item) {
                trHTML += '<tr>' +'<td onclick="updatePartNo()" class="cleardata">' + item.name + '</td>' +'</tr>';
            });
            $('#partnumber_tbody').append(clearHTML);
            $('#partnumber_tbody').append(trHTML);
                },
                "error": function() {
                    $('#dailysale_price').val('');
        }
    });
})
})

function updatePartNo() {
    alert ($(this).html());
}

点击它说未定义。帮助

1 个答案:

答案 0 :(得分:0)

  

它说未定义

因为this中的function updatePartNo引用了window个对象,而不是<td>。要解决此问题,您必须将正确的对象传递给函数。

<td onclick="updatePartNo(this)"注意(this)

然后您的function就像

function updatePartNo(element) {
    alert ($(element).html());
}
顺便说一下,你正在构建的自动完成实现并不是很好。您每隔keyup发送一次AJAX请求。它会在您的服务器上造成不必要的负绝对不需要在每个keyup上从服务器接收匹配项。对不起该offtopic。