Jquery:如何基于列值删除重复的HTML表行 使用j-Qu疑问,如何删除重复行的两行值,例如,我有2列,即CA和状态,如果状态列值是“部分”,CA列是重复的,我想考虑唯一行是可见的。
当前屏幕: 预期输出屏幕: html代码Jquery:如何基于列值删除重复的HTML表行 使用j-Qu疑问,如何删除重复行的两行值,例如,我有2列,即CA和状态,如果状态列值是“部分”,CA列是重复的,我想考虑唯一行是可见的。,jquery,Jquery,当前屏幕: 预期输出屏幕: html代码 <html> <HEAD> </HEAD> <BODY class="lytBody"> <FORM name="form0" method="post"> <TABLE class="lytTable" border="0" bordercolor="#efefef"> <TR>
<html>
<HEAD>
</HEAD>
<BODY class="lytBody">
<FORM name="form0" method="post">
<TABLE class="lytTable" border="0" bordercolor="#efefef">
<TR>
<TD class="lytM">
<tbody>
<tr>
<td class="lytM">
<table border="1">
<tbody>
<tr>
<td width="6%" nowrap="nowrap" class="rsDsc">CA</td>
<td width="6%" nowrap="nowrap" class="rsDsc">LD</td>
<td width="6%" nowrap="nowrap" class="rsDsc">COUNT</td>
<td width="16%" nowrap="nowrap" class="rsDsc">NAME</td>
<td width="15%" nowrap="nowrap" class="rsDsc">DATE1</td>
<td width="10%" nowrap="nowrap" class="rsDsc">STATUS</td>
<td width="24%" nowrap="nowrap" class="rsDsc">DATE2</td>
<td width="29%" nowrap="nowrap" class="rsDsc">DATE3</td>
</tr>
<tr>
<td width="6%" class="rsData1" valign="middle">BDC</td>
<td width="6%" class="rsData1" valign="middle">5861</td>
<td width="6%" class="rsData1" valign="middle"></td>
<td width="16%" class="rsData1" valign="middle">ABC</td>
<td width="15%" class="rsData1">09/12/2011 04:33:20</td>
<td width="10%" class="rsData1">
<div align="center"><input type="button" name="loadStatus" valign="middle" size="10" value="PENDING" onclick="javascript:getDetail('BDC','5861', 'PENDING')" class="PENDING"></div>
</td>
<td width="24%" class="rsData1"><br>
</td>
<td width="29%" class="rsData1">
09/12/2011 04:33:55
</td>
</tr>
<tr>
<td width="6%" class="rsData2" valign="middle">BDC</td>
<td width="6%" class="rsData2" valign="middle">21990</td>
<td width="6%" class="rsData2" valign="middle">1357</td>
<td width="16%" class="rsData2" valign="middle">DEF</td>
<td width="15%" class="rsData2">06/11/2015 11:37:58</td>
<td width="10%" class="rsData2">
<div align="center"><input type="button" name="loadStatus" style="background-color:yellow;" valign="middle" size="10" value="PARTIAL" onclick="javascript:getDetail('BDC','21990','PARTIAL')" class="PARTIAL"></div>
</td>
<td width="24%" class="rsData2"> <br>
06/11/2015 16:04:28
</td>
<td width="29%" class="rsData2">
06/11/2015 16:04:28
</td>
</tr>
<tr>
<td width="6%" class="rsData1" valign="middle">BDC</td>
<td width="6%" class="rsData1" valign="middle">22366</td>
<td width="6%" class="rsData1" valign="middle"></td>
<td width="16%" class="rsData1" valign="middle">GHI</td>
<td width="15%" class="rsData1">07/29/2015 13:49:25</td>
<td width="10%" class="rsData1">
<div align="center"><input type="button" name="loadStatus" valign="middle" size="10" value="PENDING" onclick="javascript:getDetail('BDC','22366', 'PENDING')" class="PENDING"></div>
</td>
<td width="24%" class="rsData1"><br>
</td>
<td width="29%" class="rsData1">
07/29/2015 14:28:16
</td>
</tr>
<tr>
<td width="6%" class="rsData2" valign="middle">BDC</td>
<td width="6%" class="rsData2" valign="middle">22367</td>
<td width="6%" class="rsData2" valign="middle">1357</td>
<td width="16%" class="rsData2" valign="middle">JKL</td>
<td width="15%" class="rsData2">07/29/2015 14:35:19</td>
<td width="10%" class="rsData2">
<div align="center"><input type="button" name="loadStatus" valign="middle" size="10" value="PARTIAL" style="background-color:yellow;" onclick="javascript:getDetail('BDC','22367','PARTIAL')" class="PARTIAL"></div>
</td>
<td width="24%" class="rsData2"> <br>
07/29/2015 15:03:37
</td>
<td width="29%" class="rsData2">
07/29/2015 15:03:37
</td>
</tr>
<tr>
<td width="6%" class="rsData1" valign="middle">BDC</td>
<td width="6%" class="rsData1" valign="middle">22369</td>
<td width="6%" class="rsData1" valign="middle">1357</td>
<td width="16%" class="rsData1" valign="middle">MNO</td>
<td width="15%" class="rsData1">07/29/2015 15:14:52</td>
<td width="10%" class="rsData1">
<div align="center"><input type="button" name="loadStatus" valign="middle" size="10" value="PARTIAL" style="background-color:yellow;" onclick="javascript:getDetail('BDC','22369','PARTIAL')" class="PARTIAL"></div>
</td>
<td width="24%" class="rsData1">
07/29/2015 15:52:46
</td>
<td width="29%" class="rsData1">
07/29/2015 15:52:46
</td>
</tr>
<tr>
<td width="6%" class="rsData2" valign="middle">BEX</td>
<td width="6%" class="rsData2" valign="middle">9500</td>
<td width="6%" class="rsData2" valign="middle"></td>
<td width="16%" class="rsData2" valign="middle">PQR</td>
<td width="15%" class="rsData2">01/31/2012 00:39:57</td>
<td width="10%" class="rsData2">
<div align="center"><input type="button" name="loadStatus" valign="middle" size="10" value="PENDING" onclick="javascript:getDetail('BEX','9500', 'PENDING')" class="PENDING"></div>
</td>
<td width="24%" class="rsData2"><br>
</td>
<td width="29%" class="rsData2">
01/31/2012 00:40:58
</td>
</tr>
<tr>
<td width="6%" class="rsData1" valign="middle">BID</td>
<td width="6%" class="rsData1" valign="middle">9918</td>
<td width="6%" class="rsData1" valign="middle"></td>
<td width="16%" class="rsData1" valign="middle">STW</td>
<td width="15%" class="rsData1">02/10/2012 06:09:50</td>
<td width="10%" class="rsData1">
<div align="center"><input type="button" name="loadStatus" valign="middle" size="10" value="PENDING" onclick="javascript:getDetail('BID','9918', 'PENDING')" class="PENDING"></div>
</td>
<td width="24%" class="rsData1"><br>
</td>
<td width="29%" class="rsData1">
02/10/2012 06:10:14
</td>
</tr>
<tr>
<td width="6%" class="rsData2" valign="middle">BID</td>
<td width="6%" class="rsData2" valign="middle">9919</td>
<td width="6%" class="rsData2" valign="middle"></td>
<td width="16%" class="rsData2" valign="middle">XYZ</td>
<td width="15%" class="rsData2">02/10/2012 06:11:55</td>
<td width="10%" class="rsData2">
<div align="center"><input type="button" name="loadStatus" valign="middle" size="10" value="PENDING" onclick="javascript:getDetail('BID','9919', 'PENDING')" class="PENDING"></div>
</td>
<td width="24%" class="rsData2"><br>
</td>
<td width="29%" class="rsData2">
02/10/2012 06:12:15
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td></td>
</tr>
</tbody>
</TD>
</TR>
<tr>
<TD> </TD>
</tr>
<TR>
<TD></TD>
</TR>
</TABLE>
<INPUT TYPE="hidden" name="LOAD_ID" value="" />
<INPUT TYPE="hidden" name="uiStatus" value="" />
</FORM>
</BODY>
</HTML>
在.each循环中,添加:
var tdElements = $(this).find('td').get();
这将获得按外观顺序排列的所有td元素的数组,然后您可以循环并提取所需td元素的文本。在内部。每个循环中,添加:
var tdElements = $(this).find('td').get();
这将按外观顺序获得所有td元素的数组,然后您可以循环并提取所需td元素的文本。请为小选择器添加一个类,例如“mytable” 您可以将以下javascript用于解决方案:
var seen = [];
function pushDataInSeen(ca, status) {
var alreadyThere = false;
var i = 0
for (i = 0; i < seen.length; i++) {
var theObj = seen[i];
if ((theObj.ca == ca) && (theObj.status == status) && (status == 'partial')) {
alreadyThere = true;
break;
}
}
if (!alreadyThere) {
seen.push({
"ca": ca,
"status": status
});
}
return !alreadyThere;
}
$(document).ready(function() {
var removal = [];
$('table.mytable tr').each(function(index) {
if (index) {
/* skip the first one for header as per the html structure */
var ca = $("td:nth-child(1)", $(this)).text().trim().toLowerCase();
var status = $("td:nth-child(6) input", $(this)).val().toLowerCase();
if (!pushDataInSeen(ca, status)) {
removal.push(index + 1);
}
}
});
removal.reverse();
for (var i = 0; i < removal.length; i++) {
$('table.mytable tr:nth-child(' + removal[i] + ')').remove();
}
});
var-seen=[];
功能pushDataInSeen(ca,状态){
var alreadyThere=假;
变量i=0
对于(i=0;i
请为小选择器添加一个类,例如“mytable”
您可以将以下javascript用于解决方案:
var seen = [];
function pushDataInSeen(ca, status) {
var alreadyThere = false;
var i = 0
for (i = 0; i < seen.length; i++) {
var theObj = seen[i];
if ((theObj.ca == ca) && (theObj.status == status) && (status == 'partial')) {
alreadyThere = true;
break;
}
}
if (!alreadyThere) {
seen.push({
"ca": ca,
"status": status
});
}
return !alreadyThere;
}
$(document).ready(function() {
var removal = [];
$('table.mytable tr').each(function(index) {
if (index) {
/* skip the first one for header as per the html structure */
var ca = $("td:nth-child(1)", $(this)).text().trim().toLowerCase();
var status = $("td:nth-child(6) input", $(this)).val().toLowerCase();
if (!pushDataInSeen(ca, status)) {
removal.push(index + 1);
}
}
});
removal.reverse();
for (var i = 0; i < removal.length; i++) {
$('table.mytable tr:nth-child(' + removal[i] + ')').remove();
}
});
var-seen=[];
功能pushDataInSeen(ca,状态){
var alreadyThere=假;
变量i=0
对于(i=0;i
如果状态列值不为部分且CA列值不同名,您将如何选择保留哪一行?@SamTengWong。需要根据CA&STATUS列放置唯一行,而仅针对服务器端的分部STATUS.CA列group by..否,在您的示例中有三个对吗?我将如何选择保留哪一行?@SantoshRamKunjir谢谢,但您可以看到LD列它是唯一的,分组方式不起作用,我已经尝试从查询中解决,最后考虑从UIC处理此问题。您将如何选择保留哪一行?@SamTengWong如果状态列值不是部分的,并且CA列值不是同名的。需要根据CA&STATUS列放置唯一行,而仅针对服务器端的分部STATUS.CA列group by..否,在您的示例中有三个对吗?我将如何选择留下哪一个?@SantoshRamKunjir谢谢,但你们可以看到LD列它是唯一的,分组是行不通的,我已经试着从查询中解决了,最后想从UIT中解决这个问题谢谢。但您的输出不是预期的输出。如果您阅读了上面的描述,我要求仅将此逻辑应用于部分状态列。预期输出:@Ashu我之前跳过了部分关键字的事情,请使用上面的代码,现在它可以工作了。更新,我错过了问:计数列值应该同时求和,并在删除多余重复行时显示。谢谢你。但您的输出不是预期的输出。如果您阅读了上面的描述,我要求仅将此逻辑应用于部分状态列。预期输出:@Ashu我之前跳过了部分关键字的事情,请使用上面的代码,现在它可以工作了。更新,我错过了问:计数列值应该同时求和,并在删除多余重复行时显示。如。