$('tr td').each((i,e)=>{
let elementsWithClass = $('td.'+$(e).attr('class'),$(e).parent());
if(elementsWithClass.length>1) {
elementsWithClass.remove()
}
})
$('tr td').each((i,e)=>{
let elementsWithClass = $('td.'+$(e).attr('class')+':not(:first)',$(e).parent());
if(elementsWithClass.length>0) {
elementsWithClass.remove()
}
})
<a id="link" href="https://google.ru/">Нажми чтобы перейти на гугл</a>
<script type="text/javascript">
document.getElementById('link').onclick = function(){
if (!confirm('Вы точно хотите перейти?')) {
return false;
}
}
</script>
<table id = 'myEmptyTable'>
<tbody></tbody>
</table>
<script type="text/javascript">
json = [
{
'type' : 'type1',
'pages' : [
{'name' : 'page1', 'attribute' : ['atr1', 'atr2', 'atr3', 'atr4']},
{'name' : 'page2', 'attribute' : ['atr1', 'atr2', 'atr3']},
{'name' : 'page3', 'attribute' : ['atr1', 'atr2']},
]
}
];
function createTableByJson(jsonPages){
var tableTbody = document.querySelector('#myEmptyTable tbody');
for (var i = 0; i < jsonPages.length; i++) {
//перебираем строки
for (var y = 0; y < jsonPages[i].attribute.length; y++) {
//проверяем сколько строк уже создано в таблице
if (tableTbody.getElementsByTagName('tr').length < y + 1) {
//если строк меньше то создаем новую
var newRow = document.createElement('tr');
tableTbody.appendChild(newRow);
//тк мы уже знаем что строк было меньше чем нужно добавляем по пустому элементу td в текущую строку, пока не дойдем до текущего столбца
for (var z = 0; z < i; z++) {
newRow.appendChild(document.createElement('td'));
}
}
//создаем новую ячейку
var newCell = document.createElement('td');
//вписываем туда текст
newCell.innerText = jsonPages[i].attribute[y];
//и добавляем его в строку
tableTbody.getElementsByTagName('tr')[y].appendChild(newCell);
}
//после того как перебрали столбец в json вписываем пусты ячеки в кажду строку что больше числа atribute в текущем столбце
for (var g = y; g < tableTbody.getElementsByTagName('tr').length; g++) {
tableTbody.getElementsByTagName('tr')[g].appendChild(document.createElement('td'));
}
}
}
createTableByJson(json[0].pages)
</script>
<canvas width="200px" height="200px">