JSFiddle - React, Tailwind, and code Playground

HTML

<table id=table>
    <col />
    <col span="2" />
    <col id="col-c" />
    <tr>
        <td>a</td><td colspan="2">b</td><td id=c>c</td>
    </tr>
</table>

<div id=log></div>

JavaScript

function getElementColumn(td)
    {
        var tr = td.parentNode;
        var col = 0;
        for (var i = 0, l = tr.childNodes.length; i < l; ++i) {

            var td2 = tr.childNodes[i];

            if (td2.nodeType != 1) continue;
            if (td2.nodeName.toLowerCase() != 'td' && td2.nodeName.toLowerCase() != 'th') continue;

            if (td2 === td) {
                return col;
            }
            var colspan = +td2.getAttribute('colspan') || 1;
            col += colspan;
        }
    }

    function getCol(table, colNumber)
    {
        var col = 0;
        var cg;
        for (var i = 0, l = table.childNodes.length; i < l; ++i) {
            var elem = table.childNodes[i];
            if (elem.nodeType != 1) continue;
            if (elem.nodeName.toLowerCase() != 'colgroup') continue;
            cg = elem;
            break;
        }
        if (!cg) return;
            
        for (var i = 0, l = cg.childNodes.length; i < l; ++i) {
            var elem = cg.childNodes[i];
            console.log(elem);

            if (elem.nodeType != 1) continue;
            if (elem.nodeName.toLowerCase() != 'col') continue;

            if (col == colNumber) return elem;

            var colspan = +elem.getAttribute('span') || 1;
            col += colspan;
        }
    }

var colNumber = getElementColumn(document.getElementById('c'));
$('#log').append('<div>colNumber: ' + colNumber + '</div>');

var col = getCol(document.getElementById('table'), colNumber);
$('#log').append('<div>col: ' + col.id + '</div>');