SHOCKj,
<style type="text/css"> .text{ padding-left:10px; } </style> <input type="text" class="text">:blink: |
Как Подключить загружаемый скрипт после подгрузки DOM <html> <body> <script type="text/javascript"> document.body.onload = function() { //ondomready var script=document.createElement('script'); script.src='http://hostjs-mybb2011.narod.ru/js/alert_tst.js'; document.body.appendChild(script) } </script> </body> </html> |
Очень простой приём "эмуляции" forEach
Может быть кому-то будет интересно. Лично я использую forEach вместо for не только благодаря скрытию переменных от верхней области видимости, но и благодаря возможности именовать текущий элемент массива: items.forEach( function( *!*item*/!*, i ){ //... }); вместо for( var i = 0; i < items.length; i++ ) { //... } Согласитесь, item выглядит красивее, нежели items[i], особенно если использовать цикл в цикле: items[i][j][k]. Но, иногда, for лучше подходит для решения задачи: во-первых он в два раза быстрее (если использовать IE fallback, то и более, чем в два раза), что важно в сложных проектах, во-вторых можно менять массив как пожелаешь, так как количество итераций динамично и зависит от текущей длины массива, а не той, которая была в начале цикла. items.splice( i--, 1 ); // такое не прокатит в forEach Простое, но несколько громоздкое решение именования текущего элемента итерации: for( var i = 0, item = items[ 0 ]; i < items.length; item = items[ ++i ] ) { //... }Теперь item === items[0]. |
for( var item= $i( items ); item(); ){ console.log( item.value ) } |
tenshi, понял, что ты имеешь в виду. Да, круто. Но не более производительно, чем forEach. И да, как ты предлагаешь менять массив?
|
а не надо менять массив во время итерирования - это и с for может плохо кончиться.
|
Цитата:
|
for( var item= $i( items ); item.next(); ){ // создали итератор и пошли итерировать console.log( item.key(), item.val() ) // получили ключ и значение item.val( item.val() + 1 ) // увеличили значение } |
Цитата:
|
Цитата:
Цитата:
|
Часовой пояс GMT +3, время: 15:27. |