If you want to get the [tr]s that have at least 2 [td]s containing some information you should use :contains before :lt.
HTML
<table class="todos">
<tbody>
<tr>
<td>info1</td>
<td>info2</td>
<td>info3</td>
</tr>
<tr>
<td>info1</td>
<td>other</td>
<td>info3</td>
</tr>
<tr>
<td>info1</td>
<td>other</td>
<td>some other</td>
</tr>
</tbody>
</table>
JS:
var procurar = 'info';
$(".todos tr").css('display', 'none');
$(".todos tbody tr").each(function () {
if ($(this).find('td:contains("' + procurar + '"):lt(2)').length > 1) {
$(this).css('display', 'table-row');
}
});
Result:
info1 info2 info3
info1 other info3
http://jsfiddle.net/4Sj7t
Else, if you want to get the [tr]s whose 2nd [td] contains some information you should use :lt before :contains, as in your example.
HTML
<table class="todos">
<tbody>
<tr>
<td>info1</td>
<td>info2</td>
<td>other</td>
</tr>
<tr>
<td>info1</td>
<td>other</td>
<td>info2</td>
</tr>
</tbody>
JS:
var procurar = 'info';
$(".todos tr").css('display', 'none');
$(".todos tbody tr").each(function () {
if ($(this).find('td:lt(2):contains("' + procurar + '")').length > 1) {
$(this).css('display', 'table-row');
}
});
Result:
info1 info2 other
http://jsfiddle.net/4Sj7t/1/