HTML (от англ. HyperText Markup Language — «язык гипертекстовой разметки») — стандартный язык разметки документов во Всемирной паутине. Язык HTML интерпретируется браузерами; полученный в результате интерпретации форматированный текст отображается на экране монитора компьютера или мобильного устройства.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Awesome App</title>
<link href="/style.css" rel="stylesheet">
</head>
<body>
<!-- Разметка страницы -->
<script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
<script src="/app.js"></script>
</body>
</html>
<script src="/app.js"></script>
Обычно js-файлы подключаются в самом низу страницы, чтобы не блокировать загрузку. Плюс, таким образом можно сразу работать с разметкой из JS — она уже будет доступна.
<link href="/app.css" rel="stylesheet">
Стили же, наоборот, обычно подключаются в вверху страницы, в теге <head>. Это помогает сразу рисовать страницу правильно.
<input type="text" placeholder="Введите текст" /> <input type="checkbox" /> <input type="checkbox" checked />
<button>Важная кнопка!</button>
Для привязки HTML к JS обычно используется аттрибут class. И классы, начинающиеся с префикса js-:
<input class="js-text" placeholder="Введите текст…"/>
<button class="js-alert-text">Отправить</button>
$('.js-alert-text').on('click', function() {
alert($('.js-text').val());
})
Для простоты дальше мы будем использовать фреймворк «Bootstrap», так нам не придётся писать свои стили и слишком сильно погружаться в вёрстку.
jQuery-селекторы нужны для того, чтобы получить элемент, с которым нам нужно поработать:
var $byClass = $('.js-tasks-list'); // по классу
var $byTag = $('input'); // по названию тега
var $byID = $('#js-tasks'); // по аттрибуту id
var $byAttr = $('[data-user="Vasya"]'); // по аттрибуту
Обычно, к переменным в которых хранятся HTML-элементы найденные jQuery, добавляется префикс $. Это помогает легче ориентироваться в коде.
Чтобы работать значениями из input'а, у jQuery-элементов есть специальный метод — val();
$('input').val(); // Получить значение
$('input').val('new value'); // Записать значение
Работать с содержимым элементов можно с помощью двух методов: $el.html() и $el.text();
$('.content').html(); // Получить HTML, который находится в элементе
$('.content').html('<div>Hello World</div>'); // Перезаписать HTML
$('.content').text(); // Получить текст из элемента
$('.content').text('Hello world'); // Записать текст
$('input').on('change', function() {
// Код, который мы выполняем при изменении значения в input'е
});
$('.js-task-remove').on('click', function() {
// Код срабатывающий при клике на все элементы с таким классом
});
var events = {};
events.store = {};
events.on = function(name, fn) {
if (!events.store[name]) {
events.store[name] = [];
}
events.store[name].push(fn);
}
events.trigger = function(name) {
if (!events.store[name]) { return; }
events.store[name].map(function(fn) {
fn();
});
}
event.on('close', function () { alert('closed') })
events.trigger('close');