Показать сообщение отдельно
  #5 (permalink)  
Старый 08.07.2012, 15:00
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Как насчёт того, чтобы сохранять общее количество ячеек в строках, а неиспользуемым ячейкам ставить display: none

<table border=1 id="table" style="cursor: pointer;">
    <tr>
        <td rowspan="3">0</td>
        <td>1</td>
        <td rowspan="3">2</td>
        <td>3</td>
        <td>4</td>
    </tr>
    <tr>
        <td style="display: none"></td>
        <td id="td">5</td>
        <td style="display: none"></td>
        <td>6</td> 
        <td>7</td>
    </tr>
    <tr>
        <td style="display: none"></td>
        <td id="td">8</td>
        <td style="display: none"></td>
        <td>9</td> 
        <td>0</td>
    </tr>
</table>​
<script>
window.onload = function (e) {
  var table = document.getElementById('table');
  var len;
  var index;

  table.onclick = function(e) {
    e = e || event;
    var target = e.target || e.srcElement; 
    if (target.parentNode.tagName == 'TR') {
      if (target.previousElementSibling == null) {
        alert('нет предыдущей ячейки')
      } else {
         index = target.parentNode.rowIndex; 
        for (var i = index; i >= 0; i--) {
          if (target.previousElementSibling.style.display != 'none') {
            alert(target.previousElementSibling.innerHTML);
            break;
          } else {
            index--;
            target = table.rows[index].cells[target.cellIndex];
          }
        }
      }
    }
  }

}
</script>
Ответить с цитированием