使用jQuery获取单元的“坐标”
我正在构建一个不同的网站,下面是我的HTML标记和我的问题。 请不要被这个文本墙推迟,我相信对于那些知道他们的东西的人来说,这确实不是一个难题,但需要一些解释。
这种标记在平铺类型的pastern中重复,以填充整个页面。 类似的DIV可能是:
如果你还没有看到它,我会在整个页面中创建一大堆单元格,分类为DIV。 现在,当用户点击一个单元格(其中一个
0, 1, 5
。
在此示例中,0,1,5是ID为0
的DIV,ID为1
DIV内的TR元素,最后是ID为5
TR元素内的单元格。 我想编写一个javascript函数来获取这些坐标,但我完全不知道要传递什么参数,而且我不知道如何得出坐标。
从我可以想到,一旦我可以将单击事件(?)传递给该函数,我可以查看
如果任何人都可以提供此问题的解决方案或提供任何输入,我们将不胜感激。
使用最接近的 jQuery函数,该函数返回您指定的父元素。
像这样:
$("td").click(function () { var parentDIVId = $(this).closest("div").attr("id"); var parentTRId = $(this).closest("tr").attr("id"); var myId = $(this).attr("id"); }
由于使用数字开始ID无效,我将提供不同的解决方案。
由于您的ID基本上是索引号,因此您可以使用jQuery的.index()
方法来获取所需内容。
在这里测试: http : //jsfiddle.net/hBarW/
$('td').click(function(){ var $th = $(this); var td_idx = $th.index(); var tr_idx = $th.closest('tr').index(); var div_idx = $(this).closest('div').index(); alert(td_idx + ' ' + tr_idx + ' ' + div_idx); });
尝试
$('td').click(function(){ var td = this.id; var tr = $(this).closest('tr').attr('id'); var div = $(this).closest('div').attr('id'); });
你可以在这里测试一下。
更多关于.closest()
信息
这很容易
$('td').click(function(){ $this = $(this); alert( $this.closest('div').attr('id') + ',' + $this.closest('tr').attr('id') + ',' + $this.attr('id')); });
但是你有一些问题..
- 你不能把数字作为ID
- ID应该在DOM内部是唯一的…