jquery用于完全匹配而不是包含的内容

时间:2013-12-18 00:09:01

标签: jquery exact-match

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

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

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

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

3 个答案:

答案 0 :(得分: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 + ']')

即可

答案 1 :(得分:1)

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

答案 2 :(得分:0)

尝试使用.filter()之类的:

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