Web Мастерская»Блог

Сообщество Web Мастеров. Тут собрано всё, чтобы написать свой первый сайт, запустить его в Интернет и поддерживать его в течении всей его работы.

Добавление контента при помощи JavaScript (Не замена)

Многие задают вопрос, как добавить информацию в блок на JavaScript, при чем в блоке уже имеется какая то информация и надо именно добавить, а не заменить. Если сделать так:
document.getElementById('content').innerHTML = 'Новая информация';

То все, что находится в блоке с id: content будет заменено на Новая информация, то что было до вставке, будет стерто. Сейчас я расскажу, как можно избежать удаления и сделать именно добавление контента.

Наверное, самый простой (займет всего одну строчку) - добавление контента при помощи +, мы просто добавляем знак плюса перед знаком равно (=), вот так:
document.getElementById('content').innerHTML += 'Новая информация';

Теперь текст Новая информация будет добавлен в конец информации в блоке.

Еще один вариант добавления контента при помощи метода appendChild. Предназначение данного метода - добавление узла в указанный ему элемент. Узел добавляется в конец. Делаем так:
var div = document.createElement('div');             // Создаем блок
...

Как добавить новые элементы в массив на JavaScript

Покажу один простой пример, как можно добавить новые элементы в уже существующий массив. Для этого я буду использовать функцию push(). Предназначение данной функции как раз таки добавлять один или несколько элементов в конец массива. Перехожу к примеру работы функции:
var arr = [1, 2, 3]; // Массив: 1, 2, 3
arr.push(4);         // Добавляем один элемент ("4") в конец массива "arr"
arr.push(5, 6);      // Добавляем два элемента ("5", "6") в конец массива "arr"
arr.push(7, 8, 9);   // Добавляем три элемента ("7", "8", "8") в конец массива "arr"

Теперь наш массив arr выглядит так:
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; // Массив: 1, 2, 3, 4, 5, 6, 7, 8, 9

Если надо добавить в массив элементы из другого массива, скажем из arr2 в arr1, то это можно сделать перебором, при помощи цикла for, например. Делаем так:
for (i = 0; i < arr2.length; i++) {
    arr1.push(arr2[i]); // Добавляем один элемент ("i") в конец массива "arr" при каждой итерации
};

После выполнения цикла получим вот такой...

Как проверить определена ли переменная на JavaScript

Здравствуйте. Начну из далека.
Сегодня мне потребовалось вывести диалоговое окно при нажатии кнопки, на JS (парсер BBcode). Диалоговое окно состоит из одного поля, куда вводится строка и двух кнопок Ok и Отмена. Это окно я хочу использовать для ввода url, пользователь нажимает BBcode URL, появляется окно, пользователь вводит адрес, затем жмет кнопку Ok, и введенный адрес появляется в textarea, уже с BBcode. Я посчитал, что это будет удобно.
// Назначили переменной "url" введенный адрес
var url = prompt(paste_url, '');
// Вставляем BBcode вместе с URL в textarea
obj.v = v.substr(0, start) + '[' + tag + '=' + url + ']' + url + '[/' + tag + ']' + v.substr(start);

Все просто и удобно!
Но тут я подумал о том, что пользователь может передумать вводить какой то адрес, после того, как нажмет на кнопку (кто та может так быстро передумать?), но теперь ему придется нажать на одну из двух кнопок (Ok или Отмена), что бы продолжить работу в редакторе, после чего в textarea будет вставлен BBcode,...

Как удалить элемент массива на JavaScript

Небольшая инструкция, как удалить элемент массива на языке JavaScript. И так, допустим у нас есть массив собранный из трех элементов, все элементы - цифры (1, 2, 3), хотя это не важно, это может быть не только цифры. Массив:
var arr = [1, 2, 3];

Наша задача - удалить значение второго элемента. Второй элемент это единица arr[1], так как массив начинает с ноля.
Удаляем при помощи delete:
var arr = [1, 2, 3];
delete arr[1];

В результате получим такой массив:
[1, undefined, 3]

Получается, что в массиве по прежнему три элемента, но один из них undefined.

Если надо удалить элемент массива полностью, то можно воспользоваться функцией splice. Предназначение данной функции - изменить содержимое массива, путем удаления существующих элементов и|или добавляя новые. Делаем так:
var arr = [1, 2, 3];
arr.splice(1, 1);

Теперь наш массив состоит из двух элементов:
[1, 3]
...

JavaScript: Регулярные выражения

Регулярные выражения - средство для поиска и замены в строке. Регулярное выражение состоит из шаблона и необязательных флагов. Регулярное выражение заключается в слеши (в начале и в конце), заключать в кавычки не надо.
Пример регулярного выражения: /^\s*/ - будет искать один пробел в начале строки. Используя это регулярное выражение можно удалить первый пробел в начале строки, вернее заменить его на "ничего":
variable = variable.replace(/^\s*/, '');


Флаги


После закрывающего слеша можно писать флаги, для более гибкого поиска подстроки. В языке JavaScript имеется три флага:
  • g - Искать все совпадения.
  • i - Регистронезависимый поиск.
  • m - Многострочный режим.

Для примера использования флагов, возьму регулярное выражение написанное выше /^\s*/, такой шаблон, как уже было сказано будет искать только один пробел (первое найденное совпадение), остальные пробелы "ему не нужны". Чтобы искать все пробелы в начале строки добавим флаг g: /^\s*/g:
variable = variable.replace(/^\s*/g, '');

Теперь все...