从td中获取列号

10

我正在为tablesorter编写一个扩展,但这是我第一次尝试扩展JavaScript。在行内,我有多个的值发生更改时,例如:

$('select').change(function(){

});

我需要获取这个select所在的列,以便为col设置值:

('tr.result > td:nth-child('+col+')').each(function(){

我能否从包含选择器的td元素中获取它呢?

-- 解决我特定问题的方法是:

$('select').change(function(){

    td  = $(this).parent('td');

    col = $(td).parent().children().index(td);

});

文档:http://api.jquery.com/index/ - Radek Benkel
2个回答

12
您可以使用index()函数。
col = $(this).parent().children().index($(this));

谢谢-看起来差不多,但我尝试了几个变体,都返回-1。我能想到的唯一问题是表分成<thead>和<tbody>,但改变.children('tbody')没有帮助? - null
是的,你说得对,当然需要父元素的子元素(TR,而不是TBODYTABLE)...请查看更新后的内容。 - ReFocus
哦,我刚注意到我的问题中的“this”是选择器,所以解决方案略有不同。感谢您的帮助 :) - null
1
不客气,很高兴听到你知道发生了什么,而不是盲目地复制答案 ;) - ReFocus

6

cellIndex 属性返回一个单元格在 table row 的 cells 集合中的位置。 w3schools

 td.cellIndex 

demo


2
对于使用colspan的表格,cellIndex无法正常工作。这意味着位于彼此上方的单元格可能会返回不同的值。 - ceving

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接