Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   {{each}} делает лишнее =) (https://javascript.ru/forum/jquery/12967-%7B%7Beach%7D%7D-delaet-lishnee-%3D.html)

Zinenko 10.11.2010 22:01

{{each}} делает лишнее =)
 
Всем привет. Разбираюсь с плагином Templates для JQuery. Допускаю какую-то ошибку в работе с тегом {{each}}...
Вот код.
<body>
<script type="text/javascript">
    var db = { id: 'acc1', data: [{ header: 'header1', content: 'бла бла бла .' },
                                          { header: 'header2', content: 'бла бла бла .' },
                                          { header: 'header3', content: 'бла бла бла .'}]
    };
    $(function(){
        $('#tmpl_accordion').tmpl(db).appendTo('#accordion');
    });
</script>
   <script id="tmpl_accordion" type="text/x-jquery-tmpl">
              <div id='${id}'>
               {{each data}}
                <h3><a href="#">${$index+1}-${header}</a></h3>
                <div>{{html content}}</div>
               {{/each}}
              <div/>
   </script>

<div id="accordion"></div>
</body>

Вот результат.
<div id="accordion">
  <div id="acc1">                                 
    <h3><a href="#">1-header1</a></h3>                 
    <div> бла бла бла .</div>                                 
    <h3><a href="#">2-header2</a></h3>                 
    <div> бла бла бла .</div>                                 
    <h3><a href="#">3-header3</a></h3>                 
    <div> бла бла бла .</div>                               
    <div></div> // <------ вот откуда это здесь ?
  </div>
</div>

Вот откуда там берется этот div ((( ?

Zinenko 10.11.2010 22:25

а всё. . . вроде разобрался ...
из документации "If data is an array, the template is rendered once for each data item in the array. If data is an object, or if the data parameter is missing or null, a single template item is rendered."
то есть JQ сначало "прыгает" на первый элемент ассоциативного массива, делает то что мне нужно, а потом "прыгает" на следующий элемент массива и пытается рендрить - делает лишнее.
Или не то ?Оо

Zinenko 10.11.2010 22:50

Цитата:

Сообщение от Zinenko (Сообщение 78494)
а всё. . . вроде разобрался ...
из документации "If data is an array, the template is rendered once for each data item in the array. If data is an object, or if the data parameter is missing or null, a single template item is rendered."
то есть JQ сначало "прыгает" на первый элемент ассоциативного массива, делает то что мне нужно, а потом "прыгает" на следующий элемент массива и пытается рендрить - делает лишнее.
Или не то ?Оо

:help: по ходу ошибся ....


Часовой пояс GMT +3, время: 12:53.