得到一个表格,其中包含tr中的大多数第一个单元格,其中第一个单元格在不同的tr中具有相同的值。我打算用这些来识别。最后,我希望这些文件中的tds以不同的方式在它们之间进行交互(拉取数据并附加到不同的td,根据数据进行计算等)。但首先,我需要所有双倍的文本具有相同的颜色
HTML
<div class="tableclass">
<table>
<tbody>
<tr>
<td>id1</td>
<td>something else</td>
<td>1</td>
</tr>
<tr>
<td>id2</td>
<td>something else</td>
<td>2</td>
</tr>
<tr>
<td>id2</td>
<td>something else</td>
<td>3</td>
</tr>
<tr>
<td>id3</td>
<td>something else</td>
<td>4</td>
</tr>
<tr>
<td>id1</td>
<td>something else</td>
<td>5</td>
</tr>
<tbody>
</table>
<div>
和jquery
$(".tableclass table tbody tr").each(function(){
var trclass = $(this).find("td:first-child").html();
$(this).addClass(trclass);
$(this).parent().filter(trclass).eq(2).css('color','red');
});
显然,我做错了。
答案 0 :(得分:0)
你可以试试这个:
var rows = $(".tableclass tbody tr");
var iterations = 0;
var rowNo = 0;
rows.each(function () {
var thisRow = $(this);
rowNo++;
if (!thisRow.hasClass('duplicate')) {
var trclass = thisRow.find("td:first-child").html();
var firstcols = thisRow.siblings('tr').find('td:first-child');
firstcols.each(function () {
if ($(this).html() == trclass) {
var dupeRow = $(this).parent();
var dupeRowNo = dupeRow.index() + 1;
thisRow
.addClass('duplicate')
.css({'color': 'red'})
.attr('title', 'Duplicated in row '+dupeRowNo);
dupeRow
.addClass('duplicate')
.css({'color': 'red'})
.attr('title', 'Duplicate of row '+rowNo);
iterations++;
}
})
}
});
//alert(iterations);
它稍微复杂一点,但它识别出重复的行,而不必两次遍历每一行。我添加了iterations
变量,因此您可以看到它只会在tr
之前处理head(fsd$year)
[1] Jan-1965 Feb-1965 Mar-1965 Apr-1965 May-1965 Jun-1965
607 Levels: Apr-1965 Apr-1966 Apr-1967 Apr-1968 Apr-1969 Apr-1970 ... Sep-2014
,如果它之前还没有识别出它有重复项。
我在行中添加了工具提示,因此您知道哪一行与其重复。
您可以在this jsfiddle上看到它。