如何在JavaScript中获取表格第n列的值?代码问题求助
解决jQuery获取表格第二列失败的问题
嘿,我一眼就发现你的问题所在啦!问题出在你用了nth(2)这个方法——jQuery里根本没有nth()这个API,而且就算是类似的选择器,索引计数规则也得注意!
问题根源拆解
- jQuery中获取指定索引元素的正确方法是
eq(),而不是nth()。 - 更关键的是:jQuery的
eq()方法是从0开始计数的,所以第二列对应的索引是1,而不是2。 - 如果你习惯了CSS的
:nth-child()选择器,那它是从1开始计数的,也可以直接用这个选择器来定位。
修正后的代码方案
这里给你两种可行的修正方式:
方案1:使用eq(1)
$('body').on('click', '.confirmation1', function(e) { e.preventDefault(); var produktNazwa = $(this).parents("tr").find("td").first().html(); // 替换nth(2)为eq(1) var produktWaga = $(this).parents("tr").find("td").eq(1).html(); console.log(produktNazwa, produktWaga); });
方案2:使用CSS选择器:nth-child(2)
如果你更习惯从1开始计数的逻辑,也可以直接用这个选择器:
$('body').on('click', '.confirmation1', function(e) { e.preventDefault(); var produktNazwa = $(this).parents("tr").find("td").first().html(); // 使用:nth-child(2)选择第二列(从1开始计数) var produktWaga = $(this).parents("tr").find("td:nth-child(2)").html(); console.log(produktNazwa, produktWaga); });
额外小提示
如果你的表格里有隐藏列或者合并单元格,建议先确认DOM结构是否符合预期,可以用console.log($(this).parents("tr").find("td"))输出所有td元素,检查索引对应的是不是你要的列,避免因为DOM结构问题导致取值错误。
内容的提问来源于stack exchange,提问作者bzc0fq
相关产品推荐
相关产品推荐

