我有一个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());
}
点击它说未定义。帮助
答案 0 :(得分:0)
它说未定义
因为this
中的function updatePartNo
引用了window
个对象,而不是<td>
。要解决此问题,您必须将正确的对象传递给函数。
<td onclick="updatePartNo(this)"
注意(this)
。
然后您的function
就像
function updatePartNo(element) {
alert ($(element).html());
}
顺便说一下,你正在构建的自动完成实现并不是很好。您每隔keyup
发送一次AJAX请求。它会在您的服务器上造成不必要的负绝对不需要在每个keyup
上从服务器接收匹配项。对不起该offtopic。