На главную | Отправить SMS | Сделать стартовой | Поставить закладку |
Разделы сайта

 Главная
 Новости
 Регистрация
 Region Free Keys
 Телефония
 Железо
 Software
 Секреты Windows
 Безопасность
 Web-дизайн
 Web-мастерам
 Фото-приколы
 Хостинги
 Раскрутка сайта
 Анекдоты
 Игромания
 Фотогалерея
 Разное
 Знакомства
 Мир техники
 Флейм
 Голосования
 Музыка
 Спорт
 Кино
 Авто
 Зал суда
 Программа TB
 Форум
 Авторам статей
 Реклама на сайте

Рассылка


Подписаться на рассылку
"Все о WEB-дизайне"

Content.Mail.Ru

Реклама



Error. Page cannot be displayed. Please contact your service provider for more details. (8)




Web-дизайн

| Основы Web-технологий | Введение в Web-дизайн | Первая Web-страница | Графика web-дизайне | Специальные возможности HTML | Каскадные таблицы стилей | Полезные приемы в Web-дизайне | Обслуживание Web-сайта | Программирование на JavaScript и VBScript | Раскрутка сайта | Деньги и интернет | Партнерские программы | Web-софт | Поисковая оптимизация | Хостинг |

Создание функций с неограниченным количеством элементов

Автор: Алексей Голубев
Сайт: http://www.frnet.narod.ru/

Зачастую бывает необходимо создавать такие функции, количество аргументов которых неопределено. Примером такой функции может послужить создание функции, выводящей на экран браузера меню, при перемножении, сложении неопределенного количества чисел, случай, когда в качестве аргументов функции выступают элементы массива и т.д. и т.п. В качестве примера мы рассмотри функцию, которая будет выводить на экран список ссылок.

1. Интерфейс функции.

Для применения функции нужно ввести следующий фрагмент:

<SCRIPT language=JavaScript>
menu(
"Раздел1", "item1.htm",
...
"Разделn", "itemn.htm"
);
</SCRIPT>

То есть, мы записывает в аргументах функции название разделов и ссылки им соответствующие (в нужном количестве, конечно), а функция строит на экране нужный список.

2. Сама функция.

Сама функция должана:
А) получать количество аргументов;
Б) выполняться при количестве аргументов больше 1;
В) выводить на экран меню.
Рассмотрим все по порядку.

А) Получение количества аргументов.

Получение количества аргументов можно организовать одной строкой следующего вида: var x = имя_функции.arguments.length;
В нашем случает (так как мы назвали функцию menu) строка будет выглядеть следующим образом:

var x = menu.arguments.length;
При выполнении данной строки количество элементов функции menu будет заноситься в переменную x.

Б) Условие выполнения функции.

Если у нас количество аргументов будет равно 1 (или 0), то функция будет выполняться с ошибками, поэтому главную часть функции нужно заключить в оператор условия if следующим образом:

if (x > 1)
{
//какие-то действия
}

В) Какие-то действия.

Что надо еще определить - это четно ли число аргументов, если нет, то мы отбрасываем последний аргумент:

if(x%2) x--;
Мы будет выводить маркированный список, поэтому должны в первую очередь записать открывающий список тег (для красоты сделаем маркеры квадратными):

document.write("<ul type=square>");
Теперь можно приступать к непосредственному выводу элементов списка. Делать мы это будем естественно при помощи цикла:

for(var i=0; i<x; i+=2)
document.write("<LI><A href="+menu.arguments[i+1]+">" + menu.arguments[i]+"</A>");

Свойство arguments объекта menu является массивом, поэтому обращаться с ним мы будем соответственно.

И в заключении записываем закрывающий список тег:

document.write("</ul>");
В итоге мы получили следующую функцию:

function menu()
{
// число аргументов функции
var x = menu.arguments.length;
// Функция работает, если число аргументов больше одного
if (x > 1)
{
// Если число аргументов нечетно,
//последний аргумент игнорируем
if(x%2) x--;

// Строим начальный тег списка
document.write("<UL type=disc>");

// Построение списка
for(var i=0; i<x; i+=2)>br>document.write("<LI><A href="+menu.arguments[i+1]+">"+
menu.arguments[i]+"</A>");

// Строим конечный тег списка
document.write("</UL>");
}
}

Вот все. Вы можете таким образом выводить списки и другого вида (при помощи тега select, с использованием стилей и т.п.). Если возникли вопросы и есть предложения по улучшению функции пишите.

P.S. Вы можете cкачать этот пример со страницы: http://www.frnet.narod.ru/script.html.
Или задать вопрос автору и ведущему раздела alexey-golubev@mail.ru

Содержание

Обсудить в форуме...>>>>

 

Каталог

Реклама


Rambler's Top100 Rambler's Top100

© 2002-2012, DIWAXX.RU. Дизайн Freeline Studio. Хостинг http://www.mtw.ru. Вопросы, пожелания, предложения: admin@diwaxx.ru