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]) ] 此方法用于在选择器的基础之上精确筛选出匹配的子集(可以使用前导限制范围)