为什么不工作?
var str;
$('table tr').each(function() {
str = $(this).find('td').eq(6).html().trim().substring(10, 20);
$(this).find('td').eq(6).text(str);
});
需要在所有第6个trim + substring + another_string_action中写入相同的值。
Firebug写入错误: $(this).find(“td”)。eq(6).html()为null
答案 0 :(得分:1)
您应该避免重复查找表格单元格:
$('table tr').each(function() {
var cell = $(this).find('td').eq(6);
if (cell.length) {
cell.text(cell.html().trim().substring(10, 20));
}
});
检查原始字符串以确保它与代码期望的一样长也许是件好事。最后,您使用.html()
获取内容,然后使用.text()
设置。这真的是你想要的吗?
答案 1 :(得分:1)
两件事。
首先,请记住并非所有浏览器都具有本机.trim()
功能。更安全地使用jQuery的$.trim()
。
其次,请记住.eq()
采用基于0
的索引,因此如果您想要第六个<td>
列,请传递5
。现在你要求第七个<td>
。
var str;
$('table tr').each(function() {
var $td = $(this).find('td').eq(5); // Get sixth <td> in the row
str = $.trim( $td.html() ).substring(10, 20);
$td.text(str);
});