我有一个函数可以扫描表中的变量(keyID)并选择包含该变量的表单元格。该变量当前定义为:
selectedTD = table.find('td:contains("' + keyID + '")');
但是,如果 keyID = 10,则如果表格单元格包含 10、100、1010 等,则 selectTD 将返回一个值。
当 keyID 完全匹配而不是包含时,如何使变量 selectTD 仅选择表格单元格?
我有一个函数可以扫描表中的变量(keyID)并选择包含该变量的表单元格。该变量当前定义为:
selectedTD = table.find('td:contains("' + keyID + '")');
但是,如果 keyID = 10,则如果表格单元格包含 10、100、1010 等,则 selectTD 将返回一个值。
当 keyID 完全匹配而不是包含时,如何使变量 selectTD 仅选择表格单元格?
没有单一的本地 jQuery 选择器可以让您这样做,但这里有很好的答案。或者,这个 jQuery 扩展看起来很有希望。
用于filter()
通过一个函数传递集合中的每个项目,如果项目应该包含,则返回 true:
selectedTD = table
.find('td')
.filter(
function() {
return this.innerText === keyID
});
ETA:如果您可以控制生成的 HTML,我建议您将 keyID 添加为data-
属性,例如<td data-keyid="keyhere">
. 然后你可以简单地使用$('td[data-keyid=' + keyID + ']')
尝试使用.filter()像:
selectedTD = table.find('td').filter(function(){
return $.trim(this.innerHTML) == keyID;
});