Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #91 (permalink)  
Старый 02.08.2012, 20:07
Аватар для Dim@
Профессор
Отправить личное сообщение для Dim@ Посмотреть профиль Найти все сообщения от Dim@
 
Регистрация: 21.04.2012
Сообщений: 951

SHOCKj,
<style type="text/css">
.text{
 padding-left:10px;
}
</style>
<input type="text" class="text">
Ответить с цитированием
  #92 (permalink)  
Старый 24.08.2012, 20:31
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Как Подключить загружаемый скрипт после подгрузки 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>
Ответить с цитированием
  #93 (permalink)  
Старый 22.11.2012, 04:48
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Очень простой приём "эмуляции" 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].
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #94 (permalink)  
Старый 22.11.2012, 22:39
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

for( var item= $i( items ); item(); ){
    console.log( item.value )
}
__________________
.ня

Последний раз редактировалось tenshi, 22.11.2012 в 22:46.
Ответить с цитированием
  #95 (permalink)  
Старый 22.11.2012, 22:42
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

tenshi, понял, что ты имеешь в виду. Да, круто. Но не более производительно, чем forEach. И да, как ты предлагаешь менять массив?
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #96 (permalink)  
Старый 22.11.2012, 22:47
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

а не надо менять массив во время итерирования - это и с for может плохо кончиться.
__________________
.ня
Ответить с цитированием
  #97 (permalink)  
Старый 22.11.2012, 22:49
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Сообщение от tenshi
это и с for может плохо кончиться.
Вообще, если ты пишешь что-либо, это может плохо кончиться. Модифицировать массив в цикле — нормальная практика, требующая просто немного внимания.
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #98 (permalink)  
Старый 22.11.2012, 22:50
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

for( var item= $i( items ); item.next(); ){ // создали итератор и пошли итерировать
    console.log( item.key(), item.val() ) // получили ключ и значение
    item.val( item.val() + 1 ) // увеличили значение
}
__________________
.ня
Ответить с цитированием
  #99 (permalink)  
Старый 22.11.2012, 22:51
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

Сообщение от FINoM Посмотреть сообщение
Вообще, если ты пишешь что-либо, это может плохо кончиться. Модифицировать массив в цикле — нормальная практика, требующая просто немного внимания.
это опасная и как правило не нужная практика. контрпример в студию)
__________________
.ня
Ответить с цитированием
  #100 (permalink)  
Старый 22.11.2012, 22:56
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Сообщение от tenshi
не нужная практика
Угу, как и программирование в целом.
Сообщение от tenshi
контрпример в студию
Забей, оно тебе точно не понадобится.
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Часто задаваемые вопросы Gozar Сайт Javascript.ru 2 23.05.2010 02:27