# \<rrw:iterator>

```markup
<rrw:iterator id="myite">
    HTML et/ou widgets
</rrw:iterator>
```

Les attributs disponibles sont :

* `id="xxx"`  **\[obligatoire]** L'identifiant unique du widget Iterator, caractères alphanumériques uniquement.
* `data-rrw-wrapper="xxx"` *\[optionnel]* définit la balise qui sera rendu lors de la publication de la page. un bloc `<div>` est définit par défaut.
* `data-rrw-insert="first|last"` *\[optionnel]* indique si l'ajout d'un élément à la liste se fait au début '`first`' ou à la fin '`last`'.
* `class="xxx"` *\[optionnel]* Liste de classes associées à ce bloc de contenus

Le contenu défini dans la balise `rrw:iterator` sert de modèle pour chaque élément de la liste ainsi créée. Si un widget est utilisé dans le modèle, celui-ci ne doit pas déclarer d'attribut `id`, il sera généré automatiquement à chaque nouvel élément de la liste. <br>

Par exemple :

```markup
<h2>Menu</h2>
<rrw:iterator id="menu" data-rrw-wrapper="ul">
    <li><rrw:text /></li>
</rrw:iterator>
```

:arrow\_up: ce template génère une liste de contenu éditable :arrow\_down:&#x20;

```markup
<h2>Menu</h2>
<ul>
    <li>text1 modifiable</li>
    <li>text2 modifiable</li>
    ...
</ul>
```

Le widget Iterator accepte les widgets enfants suivants :

* [text](https://docs.runrunweb.net/widgets/widget-text)
* [editor](https://docs.runrunweb.net/widgets/widget-editor)
* [image](https://docs.runrunweb.net/widgets/widget-image)
* [video](https://docs.runrunweb.net/widgets/widget-video)
* [pattern](https://docs.runrunweb.net/widgets/widget-pattern)
