Re[2]: Динамическая работа с DOM'ом
От: Аноним  
Дата: 14.04.10 08:26
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Здравствуйте, vonkertis, Вы писали:


V>>Есть таблица, изображенная слева. Необходимо сделать из нее таблицу, нарисованную справа.


CS>В Sciter:

Немного не так. Так работать не будет
CS>
CS><html>
CS><head>
CS>  <style></style>  
CS>  <script type="text/tiscript">
  
CS>    var table = self.$(table);
    
CS>    function self#add.onClick()
CS>    {
CS>      var tr0 = table[0];  
CS>      tr0[0].attributes["rowspan"] = 2;
      
CS>      var tr1 = new Element("tr");
CS>      table.insert(tr1,1);
      
CS>      var td = new Element("td","x");
CS>      tr1.content(td);
CS>    }
  
CS>  </script>  
CS></head>
CS><body>
CS>  <button #add>Add</button>
CS>  <table #test border=1>
CS>    <tr><td>1</td><td>2</td></tr>
CS>    <tr><td>2</td><td>3</td></tr>
CS>  </table>
CS></body>
CS></html>
CS>

Эксперементальным путем выяснилось, что для новой строчки tr1, несмотря на то что tr0.attributes["rowspan"]=2
все равно нужно создавать не одну ячейку, а две (вторую фиктивную).
Вот так будет работать:
<html>
<head>
  <style></style>  
  <script type="text/tiscript">
  
  var table = self.select("#test");
    
  function self#add.onClick()
  {
      var tr0 = table[0];  
      tr0[0].attributes["rowspan"] = 2;
      
      var tr1 = new Element("tr");
      table.insert(tr1,1);
      
      var td = new Element("td");
      tr1.insert(td, 0);
      td.html = "test";

      tr1.insert(new Element("td"), 0); // <<<<<<< создаем фиктивную ячейку
  }  
  </script> 
</head>
<body>
  <button #add>Add</button>
  <table #test border=1>
    <tr><td>1</td><td>2</td></tr>
    <tr><td>2</td><td>3</td></tr>
  </table>
</body>
</html>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.