2

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

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

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

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

4

3 回答 3

1

没有单一的本地 jQuery 选择器可以让您这样做,但这里有很好的答案。或者,这个 jQuery 扩展看起来很有希望。

于 2013-12-18T00:15:42.830 回答
1

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

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

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

于 2013-12-18T00:13:40.280 回答
0

尝试使用.filter()像:

selectedTD = table.find('td').filter(function(){
    return $.trim(this.innerHTML) == keyID;
});
于 2013-12-18T00:15:01.380 回答