考虑这张表:
http://jsbin.com/esikac/1/edit
请注意每个单元格如何具有像“xy”这样的值对,x 是开始列索引,y 是结束列索引(在这种情况下,列将是列之间的行而不是列本身,从零开始)。希望这是有道理的。
我需要的是一些 javascript,它将采用一个单元格(一个 td 元素)并给我它的开始和结束列索引,就像在我的示例表中一样。所以,假设我有一个getColumnBounds
将td
元素作为参数的函数。如果我调用它并通过td
表格右上角的 ,它会给我“3-5”(当然不是通过阅读里面的文字,而是通过弄清楚它)。
这是我到目前为止所拥有的,但是如果我在添加合并行后立即失败:
function getColumnBounds(td) {
function colSpan(col) {
return parseInt((col && col.nodeType == 1 && element.nodeName.match(/t[dh]/i)) ? (col.getAttribute("colSpan") || 1) : 0);
}
function endIndex(element) {
var colPos = colSpan(element);
while(element) {
element = element.previousSibling;
colPos += colSpan(element);
}
return colPos;
}
var startIndex = endIndex(td.previousSibling);
var endIndex = endIndex(td);
return ("" + startIndex + "-" + endIndex);
}