得到表id

时间:2015-09-24 16:17:04

标签: javascript jquery html-table

我正在使用jQuery,我的目标是获取下一个表的id。我将在这里简化代码:

简化的HTML如下所示:

<div>
   <img src="png.png" class="exportIcon" alt='' onClick="tableExport()">
   <table class="table tablesorter" id="tableHourlyT"><tr><td></td></tr></table>
</div>

然后我有以下功能:

<script>
    function tableExport(){
        tableID = $(this).next('table').attr("id");
        alert(tableID);
    }
</script>

但警报说“未定义”,实际上我甚至无法对表做任何事情,我试图隐藏它等等。它只是找不到它。我还尝试用next()替换closest(),但我仍然有相同的结果。我需要做的是总是在调用函数时,从该元素中获取最接近的下表的id(单击图像/按钮)。

3 个答案:

答案 0 :(得分:3)

这是做你想做的事的一种方法 - 将元素作为参数传递给tableExport函数:

<div>
   <img src="png.png" class="exportIcon" alt='' onClick="tableExport(this)">
   <table class="table tablesorter" id="tableHourlyT"><tr><td></td></tr></table>
</div>

然后,在jQuery选择器中使用它:

<script>
    function tableExport(element){
        tableID = $(element).next('table').attr("id");
        alert(tableID);
    }
</script>

答案 1 :(得分:0)

你不应该使用onClick属性,而是使用jQuery事件处理程序:

   $(&#34; .exportIcon&#34;)。单击(TABLEEXPORT); //只要单击导出图标,就将tableExport绑定为处理程序    function tableExport(){...}

当你以这种方式绑定事件时,你会发现$(this)被正确设置为被点击的元素。

http://www.codeply.com/go/y6OAZFRZSn

(我用一个用于演示的按钮替换了你的img,但它的工作原理相同。)

答案 2 :(得分:0)

也可以使用:

var tableID = $(element).next('table').attr("id");

代替:

tableID = $(element).next('table').attr("id");

不带var前缀的变量将在全局范围中定义