2012-08-02 44 views
1

我在我的HTML中有一个表格,在此表格中,<td>标记中的各个值是从Javascript数组中生成的。在HTML表格中查找重复的数据

我想比较<td>标记中包含的值,并检查是否有重复项。

+1

向我们展示一些代码。你有什么尝试? – rsplak 2012-08-02 07:10:47

+2

嗨,欢迎来到Stack Overflow!恐怕,为了我们能够帮助你解决这个问题,你需要解释你想要比较的事件('mouseover','DOMReady','mousedown','keydown'等等)执行后,发布HTML和数组进行检查。 – 2012-08-02 07:13:11

回答

4

<td>元素没有,它们具有内容(可能包含或不包含其他元素)。如果您的问题是“如何检查没有两个td元素具有相同的内容?”你可以做这样的事情:

var contents = {}, 
    duplicates = false; 
$("#yourtableidhere td").each(function() { 
    var tdContent = $(this).text(); 
    if (contents[tdContent]) { 
     duplicates = true; 
     return false; 
    } 
    contents[tdContent] = true; 
});  
if (duplicates) 
    alert("There were duplicates."); 

何时进行此过程中不说,但如果在响应用户点击按钮或东西,然后把上面的代码中click事件处理程序。

演示:http://jsfiddle.net/FA6SR/

很明显,你可以展开上述准确注意哪些细胞具有重复值,什么值分别为等

编辑 - 附:你提到这些值来自一个数组。对数组进行比较测试,而不是针对表格单元,而是在运行时更高效。 jQuery对此没有帮助,你只需要使用标准的for循环。

+0

谢谢..实际上,td值默认来自数组值。代替$(this).text();我用$(this).val();工作很好..非常感谢你的代码 – shiva 2012-08-02 09:22:35

+1

接受这个答案... – 2012-08-02 09:40:13