Скрипт выбор из списка и переход JavaScript. Списки javascript


Связанный список в JavaScript

JavaScript has an array data type that acts like different data structures. It can be a list, a stack, or even a queue depending on how you use it. If this code is merely for learning purposes, then it's fine. Otherwise, try using available native data structures instead of reinventing them.

Now to your code. First off, I would suggest against using constructors and use basic object literals and functions instead. It is simpler to think of data simply as a structure of arrays and objects.

this.add

Very vague name. It's not clear whether we're adding a new node (where we pass in a new instance of Node) or adding a value (that the method will wrap for us, which it currently does). It's best if you make it more verbose, like addValue.

if(this.length == 0)

length is a function of the number of nodes in the list. A common problem I had in data structures class is if the length value was out of sync with the actual node count value. This made very interesting bugs when length and the actual node count didn't match up.

To get the length, it's better, although inefficient, to actually count the nodes present. Alternatively, a list without a head is essentially an empty list. if(!this.head) is sufficient to determine an empty list.

temp = this.head; while(temp.next){ temp = temp.next; }

This can be extracted to a findTail function which can be really useful. Alternatively, keeping track of the tail like you're doing with head is also a convenient and more efficient way to do this. Not sure if there are standards to linked lists, but it's an optimization you can take advantage.

this.search = function (value){}

I don't really get the point of search. Is it supposed to just print a message if it exists? If it does, it's better named like printMessageIfValueExists. Otherwise, one would take it as a function that takes a value and returns a boolean representing its existence.

Also, a linked list best remain a data structure. It shouldn't handle printing as this makes it dependent on printing capabilities of the environment, an unnecessarily coupled dependency. Leave that to whatever code is using the linked list. Same goes for your print method.

this.removeAtIndex = function (index)

Again, another one of those vaguely-named functions. Why? It's because we're not sure what "remove" exactly means. It could mean removing the value or removing the node entirely. I see that it's removing a node, so it should be removeNodeAtIndex.

codereview.stackovernet.com

Список родных событий Javascript - oddler.ru

Событие Обработчик события Поддерживающие HTML-элементы Описание

События мыши

click onClick * Практически все HTML-элементы Одинарный щелчок (нажата и отпущена кнопка мыши)
dblclick onDblClick * Практически все HTML-элементы Двойной щелчок
contextmenu onContextmenu * Практически все HTML-элементы Щелчок правой кнопкой мыши на элементе
selectstart onselectstart * Практически все HTML-элементы Начало выделения контента. Изменение выделения скриптом.
mousewheel onMousewheel * Практически все HTML-элементы Нажата кнопка мыши в пределах текущего элемента
mousemove onMouseMove * Практически все HTML-элементы Перемещение курсора мыши в пределах текущего элемента
mouseout onMouseOut * Практически все HTML-элементы Курсор мыши выведен за пределы текущего элемента
mouseover onMouseOver * Практически все HTML-элементы Курсор мыши наведен на текущий элемент
mouseup onMouseUp * Практически все HTML-элементы Отпущена кнопка мыши в пределах текущего элемента
mousedown onMouseDown * Практически все HTML-элементы Нажата кнопка мыши в пределах текущего элемента

События клавиатуры

keydown onKeyDown * Практически все HTML-элементы Нажата клавиша на клавиатуре
keypress onKeyPress * Практически все HTML-элементы Нажата и отпущена клавиша на клавиатуре
keyup onKeyUp * Практически все HTML-элементы Отпущена клавиша на клавиатуре

События элементов форм

focus onFocus A, AREA, BUTTON, INPUT, LABEL, SELECT, TEXTAREA Получение элементом фокуса (щелчок мышью на элементе или очередное нажатие клавиши табуляции)
blur onBlur A, AREA, BUTTON, INPUT, LABEL, SELECT, TEXTAREA Потеря текущим элементом фокуса, т.е. переход к другому элементу. Возникает при щелчке мышью вне элемента либо нажатии клавиши табуляции
change onChange INPUT, SELECT, TEXTAREA Изменение значений элементов формы. Возникает после потерей элементом фокуса, т.е. после события blur
reset onReset FORM Сброс данных формы ( щелчок по кнопке <input type="reset"> )
select onSelect INPUT, TEXTAREA Выделение текста в текущем элементе
submit onSubmit FORM Отправка данных формы ( щелчок по кнопке <input type="submit"> )
abort onAbort IMG, input type="img" Прерывание загрузки изображения

События окна браузера

load onLoad BODY, FRAMESET Закончена загрузка документа
unload onUnload BODY, FRAMESET Попытка закрытия окна браузера и выгрузки документа
error onError IMG, WINDOW Возникновение ошибки выполнения сценария
move onMove WINDOW Перемещение окна
resize onResize WINDOW Изменение размеров окна
scroll onScroll * Практически все HTML-элементы Прокрутка окна или области

oddler.ru

Javascript: Создаём зависимые списки с помощью jQuery и AJAX

Зависимые списки — это два и более select-a, в которых список одного select-a зависит от выбранного значения другого. Например выбрав в первом списке страну, второй список заполняется городами выбранной страны.

Такой приём очень популярен ВКонтакте и других соц. сетях.

Сейчас мы создадим простой зависимый список Область → Город.

Для начала нам понадобится список областей и городов в формате

<?php // файл city.php   $city = array ( 'Москва и Московская обл.' => array ( 0 => 'Москва', 1 => 'Абрамцево', // ... ), 'Санкт-Петербург и область' => array ( 0 => 'Санкт-Петербург', 1 => 'Александровская', // ... ), // ... );   ?>

Создаём два select-а, в одном будут области, в другой будут подгружаться города:

<select name="region" onchange="loadCity(this)"> <option></option>   <?php // заполняем список областей foreach ($city as $region => $cityList) { echo '<option value="' . $region . '">' . $region . '</option>' . "\n"; } ?>   </select>   <select name="city" disabled="disabled"> <option>Выберите область</option> </select>

При выборе области, сработает функция loadCity, которая подгрузит список городов. Определим её:

function loadCity(select) { var citySelect = $('select[name="city"]');   // послыаем AJAX запрос, который вернёт список городов для выбранной области $.getJSON('index.php', {action:'getCity', region:select.value}, function(cityList){ citySelect.html(''); // очищаем список городов   // заполняем список городов новыми пришедшими данными $.each(cityList, function(i){ citySelect.append('<option value="' + i + '">' + this + '</option>'); }); }); }

Ну и php скрипт который отдаст в JSON формате список городов конкретной области:

<?php // файл index.php   require_once('city.php');   if (isset($_GET['action']) && $_GET['action'] == 'getCity') { if (isset($city[$_GET['region']])) { echo json_encode($city[$_GET['region']]); // возвращаем данные в JSON формате; } else { echo json_encode(array('Выберите область')); }   exit; }   ?>

Примечание: все файлы должны быть в кодировке UTF-8 without BOM, а сервер должен отдавать заголовки с правильно указанным charset (для этого в исходниках есть файл .htaccess).

Пример + Архив с исходниками.

Похожие записи

xandeadx.ru

Скрипт выбор из списка и переход JavaScript

Суть данного скрипта состоит в том, что у нас есть поле со списком, из которого мы выбираем пункт, жмем на кнопку и переходим по ссылке. Давайте сделаем.Для начала напишем код функции перехода:<script language="JavaScript" type="text/javascript">function gotolink(what){var selectedopt=what.options[what.selectedIndex]if (document.getElementById && selectedopt.getAttribute("target")=="newwin"){window.open(selectedopt.value)}else{window.location=selectedopt.value}}</script>Код скрипта готов, теперь создаем простую форму<form name="gogogo"><select name="select"><option value="#">Выберите сайт...</option><option value="http://www.yandex.ru">yandex</option><option value="http://www.google.ru" target="newwin">google</option><option value="http://www.net-f.ru">нэтфорс</option></select><input type="button" value="Перейти"></form>Как видите в Google мы добавили параметр target="newwin", благодаря которому, при переходе по ссылке Google будет открыт в новом окне, при переходе по остальным ссылкам, они будут открываться в том же окне, выбирайте сами, что вам больше подходит.

Существует еще один вариант перехода по ссылке, когда вы переходите сразу после выбора элемента из списка. Ну что ж, реализуем и этот вариант. В принципе код мало отличается от предыдущего, изменяется лишь событие OnClick на OnChange

<script language="JavaScript" type="text/javascript">function gonow(what){var selectedopt=what.options[what.selectedIndex]if (document.getElementById && selectedopt.getAttribute("target")=="newwin"){window.open(selectedopt.value)}else{window.location=selectedopt.value}}</script><form name="form"><select name="sel" onChange="gonow(document.form.sel)"><option value="#">Выберите сайт...</option><option value="http://www.yandex.ru">Яndex</option><option value="http://www.google.ru" target="newwin">Google</option><option value="http://www.net-f.ru">НэтФорс</option></select></form>Демонстрация

www.net-f.ru

Справочник Javascript

Справочник

Добро пожаловать в справочник по современному javascript!

Информация также доступна напрямую по ссылкам: http://javascript.ru/Array/slice.

Вы также можете скачать оффлайн-версию справочника в формате CHM

Объекты

Кратко | Подробно

Стандартные объекты

  • Массив пронумерованных элементов, также может служить стеком или очередью

  • Объект для булевых значений

  • Функции для работы с датой и временем

  • объект для представления ошибок

  • Ошибка при выполнении функции eval

  • Каждая функция в яваскрипт является объектом класса Function.

  • Встроенный объект, предоставляющий константы и методы для математических вычислений.

  • Объект для работы с числами

  • Базовый объект javascript

  • Ошибка, когда число не лежит в нужном диапазоне

  • Ошибку при ссылке на несуществующую переменную

  • Позволяет работать с регулярными выражениями.

  • Базовый объект для строк. Позволяет управлять текстовыми строками, форматировать их и выполнять поиск подстрок.

  • Ошибка при интерпретации синтаксически неверного кода

  • Ошибка в типе значения

  • Ошибка при некорректном URI

Объекты браузера

  • Два в одном: глобальный объект и окно браузера

Глобальные методы

Кратко | Подробно

  • Выводит модальное окно с сообщением

  • Останавливает выполнение кода, заданное setInterval

  • Отменяет выполнение кода, заданное setTimeout

  • Выводит сообщение в окне с двумя кнопками: "ОК" и "ОТМЕНА" и возвращает выбор посетителя

  • Раскодирует URI, закодированный при помощи encodeURI

  • Раскодирует URI, закодированный при помощи encodeURIComponent

  • Кодирует URI, заменяя каждое вхождение определенных символов на escape-последовательности, представляющие символ в кодировке UTF-8.

  • Кодирует компоненту URI, заменяя определенные символы на соответствующие UTF-8 escape-последовательности

  • Выполняет строку javascript-кода без привязки к конкретному объекту.

  • возвращает, является ли аргумент конечным числом

  • Проверяет, является ли аргумент NaN

  • преобразует строковой аргумент в число с плавающей точкой

  • преобразует строковой аргумент в целое число нужной системы счисления

  • Выводит окно с указанным текстом и полем для пользовательского ввода.

  • Выполняет код или функцию через указанный интервал времени

  • Выполняет код или функцию после указанной задержки

Глобальные свойства

Кратко | Подробно

  • Переменная, доступная внутри функции и содержащая аргументы и ссылку на саму функцию.

  • Отвечает за взаимодействие JavaScript с объектом документа(страницей)Является корневым элементом DOM-дерева страницы (объект типа DOMDocument согласно спецификации DOM)

  • Бесконечность

  • Не-Числовое значение

  • Обозначает неопределенное значение

Синтаксические конструкции

Кратко | Подробно

  • Завершает текущий цикл или конструкции switch и label и передает управление на следующий вызов

  • Прекращает текущую итерацию цикла и продолжает выполнение со следующей итерации

  • Задает цикл с проверкой условия после каждой итерации

  • Создать цикл, указав начальное состояние, условие и операцию обновления состояния

  • Перебрать свойства объекта, для каждого свойства выполнить заданный код

  • Объявить функцию

  • Выполняет тот или иной блок кода в зависимости от того, верно ли условие

  • Указать идентификатор для использования в break и continue

  • Возвратить результат работы функции

  • Сравнивает значение выражения с различными вариантами и при совпадении выполняет соответствующий код

  • Инициировать("бросить") исключение

  • Ловить все исключения, выпадающие из блока кода

  • Объявить переменную (или несколько) в текущей области видимости

  • Задает цикл, который выполняется до тех пор, пока условие верно. Условие проверяется перед каждой итерацией.

  • Добавить новую область видимости

  • Группировка javascript-вызовов внутри фигурных скобок

Операторы

Кратко | Подробно

  • object.property и object["property"]

  • =, +=, -=, *=, /=, >>=, <<=, >>>=, &=, |=, ^=

  • ==, !=, ===, !==, >, >=, <, <=

  • condition ? ifTrue : ifFalse

 
Поиск по сайту

javascript.ru