使用jQuery获取列中的第一个表格单元格值

cyc*_*ero 2 javascript jquery

我有一张有一些价值观的桌子.第一行和第一列分别包含这种被称为垂直和水平尺寸的值.我需要做的是单击表格单元格并获取该单击的表格单元格的水平和垂直值.它基本上意味着什么 - 在所单击的表格单元所在的行中获取第一个表格单元格的值,并获取所单击的表格单元格所在列的第一个表格单元格值.我使用以下代码获取水平值:

var horizSize = $('th:first', $(this).parents('tr')).text();
Run Code Online (Sandbox Code Playgroud)

但我不知道如何为垂直线做到这一点.如何获取列的第一个表格单元格值?

谢谢你的帮助.

Dav*_*mas 5

我认为以下应该有效:

var verticSize = $('tr:first td').eq($(this).index()).text();
Run Code Online (Sandbox Code Playgroud)

JS小提琴演示.

请注意,在演示中我还修改了您的horizSize选择器,以:

horizSize = $(this).closest('tr').find('td:first').text();
Run Code Online (Sandbox Code Playgroud)

随后改进为:

horizSize = $(this).prevAll('td:last').text();
Run Code Online (Sandbox Code Playgroud)

以上假定您希望从该单元格的值:first tr元素,不管是在theadtbody.如果你已经标记了标题单元格,th那么你需要修改td选择器th.


编辑回应Felix Kling的评论:

而不是$('tr:first td'),$(this).closest('table').find('tr:first td')可能会更好(取决于其他标记).

这是我应该想到的,我自己,真的.并且,如果table文档中不止一个,则此更改将是必不可少的,以证明:

var verticSize = $(this).closest('table').find('tr:first td').eq($(this).index()).text();
Run Code Online (Sandbox Code Playgroud)

JS小提琴演示.

参考文献: