我想通过访问同一行中的其他td来填充td元素。我如何使用jQuery访问它们?
在我的情况下,我有一个表,第5列通过从col 4中减去col 3填充,并在col 5中返回结果。我开始用嵌套循环来做,但是意识到,如果我使用的话每个col 5 td上的.each(),如果我能用jQuery识别col 3和4就可以实现。
这是fiddle。
标识要素的部分如下:
$('section.techtable td:nth-child(5)').each(function() {
$(this).append(strinToMonthNumber($(START JQUERY),$(END JQUERY)));
})
我认为我必须访问$(this)的父级,然后访问(3rd和4th)子元素?
我也试图避免在TH或TD元素上使用span或class属性。
答案 0 :(得分:3)
您可以选择一个元素(在您的情况下为表格单元格),然后使用jQuery.prev()
或jQuery.next()
选择上一个或下一个同级元素。在原生DOM中,您可以在现代浏览器中使用previousSibling
/ nextSibling
(或previousElementSibling
/ nextElementSibling
来跳过非元素节点)元素属性。
根据您的代码示例,如下所示:
$('section.techtable td:nth-child(5)').each(function() {
var cell5 = $(this),
cell4 = cell5.prev(),
cell3 = cell4.prev();
cell5.append(strinToMonthNumber(cell3, cell4)));
})
答案 1 :(得分:1)
试试这个:
$('section.techtable tr').each(function() {
var $cells = $(this).find("td");
var val = strinToMonthNumber($cells.eq(2).text(),$cells.eq(3).text());
$cells.eq(4).text(val);
});
请注意,单元格索引是零原点的,因此比3/4/5小一些。如果您已考虑零原点,则在每种情况下都为+1。