从onclick函数的表中获取第一列文本

时间:2014-09-08 18:15:48

标签: javascript jquery html

我试着这样做,但不能让它成真。试图获得第一列文本。第一列文本包含房间号。

这是我到目前为止所做的。

$.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并且进行了很多尝试,它也无法正常工作,这是小工具的一些问题。

单击按钮时,请以任何方式获取动态表格上的第一列数据。

这是我小工具的屏幕截图。

enter image description here

感谢任何帮助。

3 个答案:

答案 0 :(得分:2)

在HTML中使用onclick时,您将不会收到名为evente的参数。因此,如果您从这两个地方删除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紧密结合,将其分开以便更好地进行维护。