这是我到目前为止所做的。
$.each(eval(data), function(index, item) {
$('#data-Tables tbody').append('<tr><td>' + item.ROOM + '</td><td>' + item.GUEST_NAME + '</td><td><a onclick="showDetails(e)" class="actionBtn">Details</a></td></tr>');
});
我在onclick="showDetails(e)"
标签上使用了a
,然后我在页面上定义了功能
function showDetails(e){
$(this).text('changebtn text');
}
我在firebug上收到此错误
ReferenceError: e is not defined
我也试过没有e
,我没有在firebug上收到错误消息。
但在这两种情况下,$(this)
都不起作用?该怎么办?如何获取第一列数据。
并且我无法使用selector.click
因为即使我尝试使用document.ready
并且进行了很多尝试,它也无法正常工作,这是小工具的一些问题。
单击按钮时,请以任何方式获取动态表格上的第一列数据。
这是我小工具的屏幕截图。
感谢任何帮助。
答案 0 :(得分:2)
在HTML中使用onclick
时,您将不会收到名为event
或e
的参数。因此,如果您从这两个地方删除e
,则不会收到错误。
要在函数中查找this
,您可以使用以下内容将对象作为参数发送。
<强> HTML 强>
onclick="showDetails(this)"
<强> JS 强>
function showDetails(obj){
$(obj).text('changebtn text');
}
答案 1 :(得分:1)
这是你想要做的吗?
$.each(eval(data), function(index, item) {
var tr$ = $('<tr><td>' + item.ROOM + '</td><td>' + item.GUEST_NAME + '</td><td><a onclick="showDetails(e)" class="actionBtn">Details</a></td></tr>');
tr$.on("click",function(){
window.alert($(this).find("td:first").text());
});
$('#data-Tables tbody').append(tr$);
});
当你点击一行时,这会触发显示第一列文本的警告。
答案 2 :(得分:0)
$.each(eval(data), function(index, item) {
$('#data-Tables tbody').append('<tr><td>' + item.ROOM + '</td><td>' + item.GUEST_NAME + '</td><td><a class="actionBtn">Details</a></td></tr>');
});
$(#data-Tables td).eq(2).on('click',function(e){
e.preventDefault();
$(this).text('changebtn text');
});
不要将JS与HTML紧密结合,将其分开以便更好地进行维护。