如何获取td的col的id(不是td的列号)?

sah*_*har 7 html javascript dom html-table col

在这个例子中:

<table border="1">
    <col id="col0" style="background-color: #FFFF00"/>
    <col id="col1" style="background-color: #FF0000"/>
    <tr><td rowspan="2">1</td><td>2</td><td>3</td></tr>
    <tr><td>4</td><td>5</td><td>6</td></tr>
    <tr><td>7</td><td>8</td><td>9</td></tr>
</table>
Run Code Online (Sandbox Code Playgroud)

如何获得td 4的col的id?

如果我用这个jquery命令得到它的列号:

var cn = $(this).parent().children().index($(this));
Run Code Online (Sandbox Code Playgroud)

cn将为0,但它的样式显示它属于col1,我需要像td.col.id这样的推荐

当我在td(例如td 4)以上的td设置rowspan ="2"时,这个td的列号将与它的col(或colgroup)的顺序不同,我设置背景颜色来显示它.

编辑: 我相信有一种方法可以解决这个问题,因为当td知道它的col(colgroup)时,必须有一种方法可以从dom树的td询问它.(Td4你展示了一个特定col的风格,谁是col?)

Rem*_*emi 1

<td>4</td>是第二个表行的第一个子项,因此您确实应该获得第 0 列。

与其详细说明检测行跨度等的复杂函数,不如只为每个表单元格分配 id,或者为表创建另一个自定义解决方案。例如,您事先知道每个特定行有多少列?或者您使用实际的背景颜色或“秘密”CSS 属性作为标识。

附:我无用的小提琴,直到我理解了实际​​的问题。

编辑(阅读下面的讨论):如此处所述您不应该创建自定义 css 属性;这些通常会被浏览器忽略(并且无法通过 获得.attr())。萨哈尔的解决方案是标记受行合并影响的每个元素,以记住该元素应计算多少列。