Я использую следующий код в качестве фильтра, но каждый раз, когда я ищу что-то, он идет по строкам, а голова таблицы исчезает. Как я могу заставить его искать информацию только в теле и держать голову?
<script>
$('#inputFilter').change(function() {
var that = this;
$.each($('tr'),
function(i, val) {
if ($(val).text().indexOf($(that).val()) == -1) {
$('#data_fm_op').animate({
marginTop: 0
},
50,
function() {
$(this).find('tr').eq(i).hide();
});
} else {
$('#data_fm_op').animate({
marginTop: 0
},
50,
function() {
$(this).find('tr').eq(i).show();
});
}
});
});
</script>
inputFilter
- это идентификатор входа фильтра, а data_fm_op
- идентификатор таблицы.
Я рекомендую вам использовать <thead></thead>
и <tbody></tbody>
и запустить фильтр на $.each($('tbody tr')
можете ли вы разместить свой HTML-код, это поможет вам лучше ответить
попробуй это
<script>
$('#inputFilter').change(function() {
var that = this;
$.each($('tr'),
function(i, val) {
if ($(val).text().indexOf($(that).val()) == -1) {
$('#data_fm_op').animate({
marginTop: 0
},
50,
function() {
if(i != 0)
$(this).find('tr').eq(i).show();
});
} else {
$('#data_fm_op').animate({
marginTop: 0
},
50,
function() {
if(i != 0)
$(this).find('tr').eq(i).show();
});
}
});
});
</script>
tbody > tr
, или пропустите строки, которые содержатth's
:tr:not(:has(th))