Re[5]: Миграция с HTMLayout на Sciter 3
От: c-smile Канада http://terrainformatica.com
Дата: 25.09.16 22:27
Оценка:
Здравствуйте, yuriy_b, Вы писали:

CS>>selectRange() снимает предыдущее выделение и ставит новое на всех элементах в [optFirst ... optLast] range.

CS>>Если optFirst и optLast оба null то просто снимает выдкление.

CS>>Вроде как просто, нет?


_>Андрей, проблема лишь в том, что я не могу получить этот "// linear list of all option's: " для своего случая.

_>Например как его получить, когда элементы подлежащие выделению лежат на разных уровнях:

Не понимаю твою проблему если честно. Это как бы тривиальный обход дерева, нет?

Эта вот функцтя:

var arrayOfOptions = select.$$(option);

Вернет список всех <option> элементов внутри select. На любом уровне. И в DOM order.

Это вот

<html>
  <head>
    <title></title>
    <style></style>
    <script type="text/tiscript">
    
    function self.ready() {
      var select = $(select);
      for(var option in select.$$(option))
        stdout.println( option.firstNode.text.trim() );
    }
        
    </script>
  </head>
<body>

  <select|tree>
    <option>Root
      <option>Node 1
        <option>Leaf 1.1</option>
        <option>Leaf 1.2</option>
      </option>
      <option>Node 2
        <option>Leaf 2.1</option>
        <option>Leaf 2.2</option>
        <option>Leaf 2.3</option>
      </option>
    </option>
  </select>

</body>
</html>


Напечатает

Root
Node 1
Leaf 1.1
Leaf 1.2
Node 2
Leaf 2.1
Leaf 2.2
Leaf 2.3
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.