我有一个类.client-data
的表,其中包含许多行和单元格。我想搜索单元格并比较内部文本是否与输入值匹配,如果为true,我想将最近的<tr>
标签跳转到与输入匹配的单元格。我是jQuery的新手,所以我可能会离开这里,但到目前为止,我有以下代码:
$('.client-data td').each(function findNext() {
var cellText = $(this).html();
var inputVal = $('#findField').val();
var goTo = cellText.closest('tr').attr('id');
if (cellText == inputVal) {
$(document).scrollTop( $(goTo).offset().top );
}
})
这可能吗?
答案 0 :(得分:1)
假设这是你的html:
<input type="text" id="i">
<table class="client-data">
<tr>
<th>Month</th>
<th>Savings</th>
</tr>
<tr>
<td>January</td>
<td>$100</td>
</tr>
<tr>
<td>Feb</td>
<td>$100</td>
</tr>
<tr>
<td>March</td>
<td>$100</td>
</tr>
<tr>
<td>Mafdrch</td>
<td>$100</td>
</tr>
<tr>
<td>Mafsarch</td>
<td>$100</td>
</tr>
<tr>
<td>Macrch</td>
<td>$100</td>
</tr>
<tr>
<td>Mabxrch</td>
<td>$100</td>
</tr>
<tr>
<td>Mcxbarch</td>
<td>$100</td>
</tr>
<tr>
<td>Mxcbarch</td>
<td>$100</td>
</tr>
<tr>
<td>Mcbbxcarch</td>
<td>$100</td>
</tr>
</table>
用于搜索和滚动的脚本:
// trigger on keyup
$("#i").keyup(function(){
var input = $(this).val();
// scroll to first td that has the input val
$('html, body').animate({
scrollTop: $(".client-data td:contains('"+input+"')").first().offset().top
}, 500);
})
点击此处查看:https://jsbin.com/toyecarigo/edit?html,console,output