jquery 使用啥来精确匹配而不是包含

Posted

技术标签:

【中文标题】jquery 使用啥来精确匹配而不是包含【英文标题】: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 仅选择表格单元格?

【问题讨论】:

【参考方案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 是的,重新阅读问题,我认为您可能是对的。已编辑。

以上是关于jquery 使用啥来精确匹配而不是包含的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 jquery 获得精确的 div 标签匹配选择器?

[ jquery 过滤器 slice(start, [end]) ] 此方法用于在选择器的基础之上精确筛选出匹配的子集(可以使用前导限制范围)

我可以使用啥来获取整数输入而不是 C 中的 scanf?

如何在 JQuery 自动完成中开始精确匹配?

python模糊匹配库能否定制匹配关系

我应该做些啥来让它显示变量而不是值?