| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > скрипт - создать список на странице |
| Автор: Valeria 28.12.2006, 14:32 | ||
надо написать скрипт создания списка, пишу так
вообще,сюда будет передаваться какой-нибудь параметр,строковый,который будет в списке появляться. но вообщем-то итак не работает,почему?помогите. и еще эту функцию можно в onload запускать при загрузке страницы? |
| Автор: Aliance 28.12.2006, 14:49 | ||
|
| Автор: Valeria 28.12.2006, 14:53 |
| Aliance, супер! огромное спасибо! работает! |
| Автор: Zeroglif 28.12.2006, 15:23 |
Чтобы лучше работало - li создаются прямо в obj, а надо в ul (то есть пропущен шаг ul.appendChild(li[i]) ); - li можно создать один раз, затем клонировать в цикле; - свойство innerText работает не везде (надо бы createTextNode(), ну, или innerHTML); - переменная i - глобальная, правильнее сделать её локальной; |
| Автор: AKS 28.12.2006, 15:58 | ||
И еще ма-a-a-ленький шажочек - obj.appendChild(ul). ;) |
| Автор: Valeria 28.12.2006, 16:26 | ||
| здорово! буду доделывать! а еще есть вопрос,если мне надо сделать не просто список,а чтобы это были ссылки таким же образом, создавать элемент A?! внутри списка? Добавлено @ 16:32
вот как-то так,только ссылки не получаются. что не так? Добавлено @ 16:39 все,поняла,свойство забыла a.href = '#'; |
| Автор: Aliance 8.1.2007, 11:06 |
| со всем согласен, почему так не понимаю: |
| Автор: AKS 8.1.2007, 16:03 |
| Aliance, а в чем вопрос - почему "переменная i - глобальная", или же почему "правильнее сделать её локальной"? |
| Автор: solenko 8.1.2007, 18:12 |
| AKS, у меня тоже возник тот же вопрос -- "переменная i - глобальная?". Кажется var используется как раз для создания локальных переменых. |
| Автор: AKS 8.1.2007, 19:01 |
| solenko, Вам все правильно кажется. Просто "переменная i - глобальная" - это цитата комментария, который был адресован второму посту в этой теме. Посмотрите, там i как раз без var, и, как результат, "глобализация"... Ну и заодно уж можно написать, что в этом случае локальная переменная "правильней" хотя бы потому, что просто (именно просто, а если не просто - то есть несколько ньансов) нет совершенно никакой необходимости создавать глобальную переменную. Хотя это случается ("создание глобальных переменных"), конечно же, не умышленно, а по каким-либо другим (неизвестным мне) причинам... |
| Автор: vasac 8.1.2007, 21:36 |
Прошу прощения, а в чем это выражается? |
| Автор: AKS 8.1.2007, 22:08 | ||
vasac
В действиях, которые предпринимаются движком. Zeroglif, согласитесь, как красноречиво описал Эрик вот http://blogs.msdn.com/ericlippert/archive/2006/05/04/590030.aspx работу интерпретатора по данной теме - я читал и наслаждался! P.S. Пользуясь случаем, надо бы поблагодарить Zeroglif'a за хорошую тему - http://forum.vingrad.ru/topic-120066.html, а остальных призвать читать все то, что упомянутый участник форума любезно предоставляет в этой теме... |
| Автор: Zeroglif 8.1.2007, 22:53 | ||
Переменные (var-ы) создаются на "нулевой строке" со значением undefined. С 1-ой же строки к ним можно обращаться со всеми вытекающими. Свойства глобального объекта создаются в рантайм при условии, что им присваивается значение, только после этого к ним можно обращаться (это просто результат абстрактной операции PutValue, ES 8.7.2). Все реализации ECMAScript обязаны следовать этому, например, по ссылке, которую привёл AKS, поясняется, как именно это cделано в JScript.
|
| Автор: Zeroglif 8.1.2007, 23:25 |
| Интересная весчь получается. Попробовал я ради интереса проверить, насколько медленнее обращение к глобальной переменной из глубин, если тупо увеличить число вложенных функций, допустим, до пяти. И получилось, что IE и Opera вполне адекватно и быстро работают (вложенность почти не влияет, т.к. объекты (кроме глобального), у которых ищется переменная - "пустые"), а gecko-браузеры (FF, SeaMonkey) странно тормозят... Это у меня одного так или подтвердите? http://www.404.googlepages.com/Z-tests-local-vs-global2.html. |
| Автор: vasac 8.1.2007, 23:34 | ||
Zeroglif, да, действительно:
|
| Автор: AKS 9.1.2007, 09:51 |
| У меня примерно так же, как у vasac. Заодно еще и в Opera 7 глянул - лишь чуть-чуть медленнее, чем 9-ка, но, однако, хороша эта Opera! А есть над чем подумать сегодня - почему же в FF такие результаты. Надо бы это к чему-то подвести... |