我已經閱讀了很多答案,但我仍然不確定如何更新TR的屬性。我的代碼的想法是在更新第一行的data-auditidentity屬性時將相似的行合併爲一個。使用jQuery更新TR的數據屬性
什麼在藍色火焰我缺少?最終結果應該是過程的一個錶行,data-auditidentity屬性應該有全部四個逗號分隔的鍵。嘗試使用attr更新以使所有四個值逗號分隔失敗。
var uniqueKeys = [];
var resultsTable = $('#results');
$(resultsTable).find('tbody > tr').each(function() {
var tableName = $(this).find('td:eq(0)').text();
var tableAction = $(this).find('td:eq(1)').text();
var uniqueKey = tableName + '#' + tableAction;
if (uniqueKeys.indexOf(uniqueKey) < 0) {
uniqueKeys.push(uniqueKey);
} else {
var initValue = '',
newCombinedValues = '',
auditidentity = '';
initValue = $(resultsTable).find(" tr td:first-child:contains(" + tableName + ")").parent().attr('data-auditidentity');
var activityLogId = $(this).data('activitylogid');
auditidentity = $(this).data('auditidentity');
newCombinedValues = initValue + "," + auditidentity;
$(resultsTable).find("tbody tr td:first:contains(" + tableName + ")").parent().attr('data-auditidentity', newCombinedValues);
// After we have what we need, remove the combined row as we are combining the keys into one row
//$(this).remove();
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="results">
<tbody role="alert" aria-live="polite" aria-relevant="all" data-auditidentity="18487179,18487183">
<tr class="subRow odd" data-activitylogid="6459056" data-auditidentity="18487186" data-auditid="f831583e-d1a9-4e35-ac92-82a5cb48c62e">
<td class=" sorting_1">Selection</td>
<td class=" "><a class="auditaction">Update</a></td>
</tr>
<tr class="subRow even" data-activitylogid="6459056" data-auditidentity="18487179" data-auditid="88506880-632f-4e17-bceb-ebd4e20e435a">
<td class=" sorting_1">Procedure</td>
<td class=" "><a class="auditaction">Update</a></td>
</tr>
<tr class="subRow odd" data-activitylogid="6459056" data-auditidentity="18487181" data-auditid="a2768380-8c4a-4070-9834-900f95db77a2">
<td class=" sorting_1">Procedure</td>
<td class=" "><a class="auditaction">Update</a></td>
</tr>
<tr class="subRow even" data-activitylogid="6459056" data-auditidentity="18487182" data-auditid="cb54deca-2bc4-4b71-ba5a-0e6d075b7b26">
<td class=" sorting_1">Procedure</td>
<td class=" "><a class="auditaction">Update</a></td>
</tr>
<tr class="subRow odd" data-activitylogid="6459056" data-auditidentity="18487183" data-auditid="05803858-aaba-4f9b-9128-fc0c265cfaf6">
<td class=" sorting_1">Procedure</td>
<td class=" "><a class="auditaction">Update</a></td>
</tr>
</tbody></table>
最終的結果應該是這樣的
<table id="results">
<tbody role="alert" aria-live="polite" aria-relevant="all" data-auditidentity="18487179,18487183">
<tr class="subRow odd" data-activitylogid="6459056" data-auditidentity="18487186" data-auditid="f831583e-d1a9-4e35-ac92-82a5cb48c62e">
<td class=" sorting_1">Selection</td>
<td class=" "><a class="auditaction">Update</a></td>
</tr>
<tr class="subRow even" data-activitylogid="6459056" data-auditidentity="18487179,18487181,18487182,18487183" data-auditid="88506880-632f-4e17-bceb-ebd4e20e435a">
<td class=" sorting_1">Procedure</td>
<td class=" "><a class="auditaction">Update</a></td>
</tr>
</tbody></table>
因此,基本上你想檢查每行的「data-auditidentity」,並保留每個唯一值的第一行,並刪除具有相同「data-auditidentity」屬性的其他現有行? – Fered
@FaridNaderi數據審計身份將是唯一的。我想將這四行合併爲一個,並更新單個數據auditidentity以使所有四個鍵(逗號分隔)。更新我的問題作進一步澄清。 –
我不確定我是否正確,但您能否看到它是否適合您? 'var uniqueKeys = []; $( '表TR')每個(函數(指數){ \t uniqueKeys.push($(本)。數據( 'auditidentity')); \t如果(指數> 0){ \t \t $(此).remove(); \t} }); ('data-auditidentity',uniqueKeys.join()); $('table tr') \t .data('auditidentity',uniqueKeys.join()) \t .attr ' – Fered