我必须过滤一个 html 表。为此,我为所有 tr
元素创建了一个回调,并测试其中一个 tr-children
是否包含某种特定模式。
$("#filter").keypress(function() {
var filter = $(this).val();
$("#table1 tr[data-config]").each(function(){
var val = $(this).find(":contains('" + filter + "')");
if(val.length > 0){
$(this).css("display","table-row");
}else{
$(this).css("display","none");
}
});
});
它可以工作,但是是否有一个函数可以测试一个元素是否包含一些文本?
此刻,我检索了包含该模式的所有元素的列表,并计算它是否大于零。是否有一个 jQuery 函数,它测试这种模式是否发生并返回一个 bool 值?该表可以包含很多行,因此我希望开销尽可能小。
最佳答案
///// replace these lines...
// var val = $(this).find(":contains('" + filter + "')");
// if(val.length > 0){
///// with this line
if($(this).text().match(filter)){
这通过将整个行内容转换为文本字符串,然后使用简单的字符串比较函数来检查过滤器是否包含在文本(以及行)中
关于jquery - 使用 jQuery 测试子项是否包含特定文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11824022/