我正在使用 JQuery 遍历表中的所有 TR,
但并非所有行在第一个单元格中都有值。
<TR>
<TD>3</TD>
<TD>2</TD>
<TD>1</TD>
</TR>
<TD></TD>
<TD>3</TD>
<TD>2</TD>
<TR>
</TR>
<TR>
<TD></TD>
<TD></TD>
<TD>3</TD>
</TR>
我如何定位每行中不为空的第一个 TD 而不仅仅是第一个孩子?
谢谢!
我正在使用 JQuery 遍历表中的所有 TR,
但并非所有行在第一个单元格中都有值。
<TR>
<TD>3</TD>
<TD>2</TD>
<TD>1</TD>
</TR>
<TD></TD>
<TD>3</TD>
<TD>2</TD>
<TR>
</TR>
<TR>
<TD></TD>
<TD></TD>
<TD>3</TD>
</TR>
我如何定位每行中不为空的第一个 TD 而不仅仅是第一个孩子?
谢谢!
这是一个更简单、更优雅的解决方案:
$('tr').find('td:not(:empty):first').css('background', 'red');
小提琴:http: //jsfiddle.net/dandv/JRcEf/
它只是在 jQuery 中说明了您的意思:“定位每个非空的第一个”。 td
tr
td
这会在 each中找到第一个非空白子项tr
:
$("tr").each(function() {
var $firstNonEmptyCell;
$(this).children("td").each(function() {
var $td = $(this);
if ($td.text() === "") {
$firstNonEmptyCell = $td;
return false; // Breaks `each` loop
}
});
// ...use `$firstNonEmptyCell` here
});
或者,如果您想要所有非空白的 jQuery 包装器,这是一个微不足道的用例filter
:
$("tr").each(function() {
var nonBlankCells = $(this).children("td").filter(function() {
return $(this).text() !== "";
});
// Use `nonBlankCells` here
});
var tds = [];
$('#tableId tr').each(function()
{
$(this).find('td').each(function()
{
if ( $(this).html() != '' )
{
tds.push($(this));
return false;
}
});
});
瞧,在tds
变量中你得到了你的 td 标签