我怎么知道在jquery中点击了哪一行

时间:2010-09-02 02:48:55

标签: jquery jquery-plugins jquery-selectors

我有一个表,其中包含从服务器端脚本(PHP)动态的行 还使用Zend Framework。 所以每行都有id的超链接      someValue中(动态) 现在每行将通过以下代码将每个行附加上下文菜单(Jquery插件)。

    $("#myTable td:first-child").contextMenu("myMenu1",{
      bindings: {
            'hdr': function(t) {
                alert($("#Test0").attr("data-value1"));
                alert($("#Test0").attr("data-value2"));

             }
      },
      menuStyle: {
            border: '1px solid #000'
       }
      });

所以我的问题是我怎么知道哪一行是单击上下文菜单的 假如我点击第二行我想得到那个< a href> “test1”或“test2”或“test3”或“test4”的值 动态地。我不应该在

上写“test1”或test2儿子

2 个答案:

答案 0 :(得分:2)

与大多数jQuery事件处理程序一样,我的猜测是this变量将是被单击的元素。无论如何,如果你至少可以获得被点击的元素,其余部分应该很容易。

查看API文档中的closest()方法:http://api.jquery.com/closest/

我只是在这里猜测,但你可以做类似的事情 var value = $(this).closest("a.someClass").attr("data-value1");其中“someClass”是可选的,但如果同一行中可能有其他人,则有助于确保您获得正确的锚标记。

答案 1 :(得分:1)

请提供生成的html标记。 这些方面应该有用:

$("#myTable td:first-child").contextMenu("myMenu1", {
    bindings: {
        'hdr': function(t) {
            alert($("this").closest("tr").find("a").attr("href"));
        }
    },
    menuStyle: {
        border: '1px solid #000'
    }
});