【问题标题】:jquery What to use for exact match rather than containsjquery 使用什么来精确匹配而不是包含
【发布时间】:2013-12-18 00:09:00
【问题描述】:

我有一个函数可以扫描表中的变量 (keyID) 并选择包含该变量的表单元格。该变量目前定义为:

selectedTD = table.find('td:contains("' + keyID + '")');

但是,如果 keyID = 10,那么如果表格单元格包含 10、100、1010 等,则 selectTD 将返回一个值。

当 keyID 完全匹配而不是包含时,如何使变量 selectTD 仅选择表格单元格?

【问题讨论】:

    标签: jquery exact-match


    【解决方案1】:

    使用filter() 将集合中的每个项目传递给一个函数,如果项目应该包含,则返回true:

    selectedTD = table
                    .find('td')
                    .filter(
                        function() { 
                            return this.innerText === keyID 
                        });
    

    预计到达时间: 如果您可以控制生成的 HTML,我建议您将 keyID 添加为 data- 属性,例如 <td data-keyid="keyhere">。然后你可以简单地使用$('td[data-keyid=' + keyID + ']')

    【讨论】:

      【解决方案2】:

      没有单一的、原生的 jQuery 选择器可以让你这样做,但是 good answers here。或者,this jQuery extension 看起来很有希望。

      【讨论】:

        【解决方案3】:

        尝试使用.filter() 喜欢:

        selectedTD = table.find('td').filter(function(){
            return $.trim(this.innerHTML) == keyID;
        });
        

        【讨论】:

        • @Madbreaks 是的,重新阅读问题,我认为您可能是对的。已编辑。
        猜你喜欢
        • 2022-06-15
        • 2011-07-26
        • 1970-01-01
        • 1970-01-01
        • 2014-05-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多