jquery - 使用 jQuery 测试子项是否包含特定文本

标签 jquery html css filter

我必须过滤一个 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/

相关文章:

javascript - 下拉菜单切换不适用于 iPhone

jquery - 有 AJAX 引用吗? ajaxSubmit() 的作用是什么?它内置于 jQuery 中吗?

html - 什么 CSS 规则导致我的绝对定位元素被隐藏

html - 如何在 thymeleaf 中将值设置为 "NULL"

jquery - 从搜索框中获取的总字数并使用总字数发送 ajax 调用

c# - 如何通过 HttpPostedFileBase 与 ViewModel 一起发送上传的文件?

html - 电子邮件签名中的 base64 编码图像

html - VSCode 中的自动缩进 <head> 和 <body>

c# - 使用 css 样式打印

css - 为什么 box-sizing : border-box still show the border with a width of 0px?