javascript - 使用 jquery 或 javascript 计算表列中的重复值并传递给 rowspan
问题描述
我想从表列中计算重复值并传递给rowspan
using javascript
or jQuery
。
$(document).ready(function(){
var myarry =[];
var el = {};
$("tbody tr").each(function() {
var row = $(this).nextAll();
var first = row.find('td').eq(0).text();
var second =row.find('td').eq(1).text();
var third = row.find('td').eq(2).text();
if(el[first + second + third]) {
myarry.push(el);
}else {
var c = (parseInt(myarry.length) + parseInt(1));
console.log(c);
row.find('td').eq(3).attr("rowspan",2);
el[first + second + third] = 1;
myarry =[];
}
});
});
解决方案
你可以通过使用选择器来做到这一点
$('#tableId tbody tr td:nth-child(1)');
$(document).ready(function(){
var counts={},valuesArray=[];
$('#tableId tbody tr td:nth-child(1)').each( function(){
//add item to array
var colValue=$(this).text();
if($.inArray(colValue,valuesArray)==-1){
counts[colValue]=1;
valuesArray.push(colValue);
}
else{
var oldCount=counts[colValue];
counts[colValue]= ++oldCount;
}
});
valuesArray=[];
$('#tableId tbody tr td:nth-child(4)').each( function(){
var currentObj=$(this);
if(currentObj.length>0){
$('#tableId tbody tr td:nth-child(1)').each( function(){
var colValue=$(this).text();
debugger;
if($.inArray(colValue,valuesArray)==-1){
var rowspanValue=counts[colValue];
if( currentObj.attr("rowspan")==undefined)
{
currentObj.attr("rowspan",rowspanValue);
currentObj.text(rowspanValue);
valuesArray.push(colValue);
}
}
})
}
});
});
table {
font-family: arial, sans-serif;
border-collapse: collapse;
width: 100%;
}
td, th {
border: 1px solid #dddddd;
text-align: left;
padding: 8px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<table id='tableId'>
<thead>
<tr>
<th>VISA</th>
<th>Country</th>
<th>Category</th>
<th>Total VISA</th>
</tr>
</thead>
<tbody>
<tr>
<td>123456</td>
<td>abcc</td>
<td>Plumber</td>
<td></td>
</tr>
<tr>
<td>123456</td>
<td>abcc</td>
<td>Plumber</td>
</tr>
<tr>
<td>123456</td>
<td>abcc</td>
<td>Plumber</td>
</tr>
<tr>
<td>8787</td>
<td>ddd</td>
<td>Plumber</td>
<td></td>
</tr>
<tr>
<td>8787</td>
<td>ddd</td>
<td>Plumber</td>
</tr>
<tr>
<td>8787</td>
<td>ddd</td>
<td>Plumber</td>
</tr>
<tr>
<td>8787</td>
<td>ddd</td>
<td>Plumber</td>
</tr>
<tr>
<td>8787</td>
<td>ddd</td>
<td>Plumber</td>
</tr>
</tbody>
</table>
</body>
</html>
推荐阅读
- html - 为什么 TypeScript 拒绝复选框输入的结构?
- java - BufferedWriter 不检测只读目录
- scala - Spark,如何知道包含 SP 的 SQL 执行的返回值
- activemq - ActiveMQ 在使用 systemctl 启动时以从属模式启动
- c# - 关闭表单时如何返回对象
- android - 在父 Activity 中实现内部 Fragment 类
- flutter - 颤振泄漏无状态小部件?
- c# - MyImage.Source 索引不随列表变化
- c# - 由于某种原因,C# Word Interop 无法更改文档属性中内置的“创建日期”
- java - 如何给出特定错误而不是 500 内部