我正在通过 html 表格
搜索一个值。
当我点击一个按钮时,我正在执行下面的代码:
var userinput = $(input).val();
$('table td').filter(function(){
return $(this).text() == '654';
}).css('background-color', 'yellow');
<table>
<tr>
<td>654</td>
</tr>
<tr>
<td>456</td>
</tr>
<tr>
<td>123</td>
</tr>
</table>
上面的代码有效,但我还想知道在表中的 td 之一中是否没有返回值或值不存在。 p>
顺便说一句,搜索的值是动态的。
感谢您的帮助。谢谢
最佳答案
您可以存储 filter()
返回的结果并检查长度以确定是否找到:
var userinput = '654';
var resArr = $('table td').filter(function(){
return $(this).text() == userinput;
}).css('background-color', 'yellow').get();
var token = resArr.length > 0 ? 'Found' : 'Not Found';
console.log(token);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<tr>
<td>654</td>
</tr>
<tr>
<td>456</td>
</tr>
<tr>
<td>123</td>
</tr>
</table>
您可以附加input 事件来检查每个td,如下所示:
$('#txtInput').on('input', function(){
$('td').css('background-color', '')
var userinput = $(this).val();
var resArr = $('table td').filter(function(){
return $(this).text() == userinput;
}).css('background-color', 'yellow').get();
var token = resArr.length > 0 ? 'Found' : 'Not Found';
console.clear();
console.log(token);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="txtInput" placeholder="Enter to search"/>
<table>
<tr>
<td>654</td>
</tr>
<tr>
<td>456</td>
</tr>
<tr>
<td>123</td>
</tr>
</table>
关于javascript - 如何返回 not found in filter function in jQuery?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53718139/