День 1

  • Селекторы
  • Фильтры
  • Работа с атрибутами
  • Обход DOM
  • Манипуляции с DOM
  • События
  • Домашняя работа

Селекторы

//01

1) Базовые селекторы

$('*') - выбрать все элементы

$('#id') - выбрать по Id элемента

$('.class') - выбрать по классу элемента

$('tagName') - выбрать по тегу элементы

2) Комбинированные элементы

$('div ul') - ul является потомком div

$('div > ul') - ul является прямым потомком div

$('div + ul') - вернёт ul который будет идти за div

$('div ~ ul') - вернёт все ul который будут идти за div

$('div, ul, .nav)

3) селекторы по атрибутам

$('attrName') - все элементы с атрибутам attrName;

$('attrName = value')  - все элементы у которых значение атрибута attrName равно value

$('attrName != value') - значение атрибута не совпадает с value

$('attrName ^= value') - значение атрибута начинается с value

$('attrName $= value') - значение атрибута заканчивается значением value

$('attrName *= value') - значение атрибута содержит подстроку равное value

$('attrName ~= value') - значение атрибута содержит слово value

 

4) Селекторы по фильтрации 

$(':focus')$(':hover') - элементы в соответствующем состоянии (focus, hover)

$(':first')$(':last') - первый или последний найденный элемент

$(':eq(1)'), $('...').eq() - вернёт элемент под заданным номером среди выбранных (начало с "0")

$(':even')$(':odd') - элементы с четным и нечетным номером позиции

$(':gt(n)') - элементы с индексом, который превышает n

$(':lt(n)') - элементы с индексом, который меньше n  

:checked, :selected, :disabled, :enabled, :contains, :empty, :hidden, :visible

 

Фильтры

//02

.eq(), .first(), .last(), .slice(start, end), .not(), .has(DOMelement),

.is() - boolean,

.addBack() - добавить текущий набор к предыдущему 

.end() - вернуться к предыдущему набору

.add() - добавить элемент в набор

.map(), .each() 

.each() - вызывает функцию для каждого элемента в наборе



var heights = [];  // переменная, которая будет хранить высоты элементов
 
$("div").each(function(indx, element){
  heights.push($(element).height());
});
 
// в итоге, в переменную heights будут помещены значения высот всех div-элементов

//05

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



var classes = $("div").map(function(indx, element){
  return $(element).attr("class");
});

Обход DOM

//03

.children() - возвращает все дочерние элементы

.find() - находит элемент по заданному селектору

.parent() - находит родителей у выбранных элементов

.next(), .prev() - находит элемент, который лежит непосредственно после или перед выбранным элементом

.nextAll(), nextUntil() - находит всё элементы, которые лежат после или перед выбранным элементом

Манипуляции с DOM

//04

.text() - изменяет или возвращает текст у выбранного элемента

.html() - изменяет или возвращает html у выбранного элемена

.text(function(I, oldText), 

.html(function(I, oldText)

Работа с атрибутами

 

//07

.attr(name), .attr(name, value), .prop(), .addClass(), .removeClass(), .toggleClass()

События

//07



// Установим обработчик нажатия кнопкой мыши, элементу с идентификатором foo
$('#foo').on('click', function(){
  alert('Вы нажали на элемент "foo"');
});
 
// Теперь, при нажатии на элемент foo, будет выведено сообщение

.on('event', function(){...});

event.preventDefault() - отменят стандартное действие браузера



$('a').on('click', function(event){
	# some code
	event.preventDefault();
});
event.stopPropagation() - останавливает "всплытие" вызова  события к родительским элементам
$('a').click(function(event){
	# some code
	event.preventDefault();
});

<div id="demo">
    <a href="js4.it">Link</a>
</div>

$('a').click(function(event){
	event.preventDefault();
	event.stopPropagation();
	console.log('You have clicked the link.');
});

$('#demo').click(function(){
	$(this).toggleClass('yellow');
	console.log('You have clicked the demo div.');
});

День 2

  • Манипуляции с DOM
  • CSS

Манипуляции с DOM

.append(), .appendTo(targe) - добавляет заданное содержимое в конец элементов на странице

 <ul class="list l1">	
   <li class="item"> Быстро </li>	
   <li class="item"> Сильно </li>	
 </ul>
 <ul class="list l2">
   <li class="item"> Выше </li>	
   <li class="item"> Быстрее </li>	
   <li class="item"> Сильнее </li>	
 </ul>

 $(".list").append("<li class='item'>Тест</li>");
 $("<li class='item'>Тест</li>").appendTo($(".list"));

 <ul class="list l1">	
   <li class="item"> Быстро </li>	
   <li class="item"> Сильно </li>	
   <li class="item"> Тест </li>	
 </ul>
 <ul class="list l2">
   <li class="item"> Быстрее </li>	
   <li class="item"> Сильнее </li>	
   <li class="item"> Тест </li>	
 </ul>

.prepend(), .prependTo(target)  - добавляет заданное содержимое в начало элементов на странице

 <ul class="list l1">	
   <li class="item"> Быстро </li>	
   <li class="item"> Сильно </li>	
 </ul>
 <ul class="list l2">
   <li class="item"> Быстрее </li>	
   <li class="item"> Сильнее </li>	
 </ul>

 $(".list").prepend("<li class='item'> Тест </li>");
 $("<li class='item'> Тест </li>").prependTo($(".list"));

 <ul class="list l1">
   <li class="item"> Тест </li>	
   <li class="item"> Быстро </li>	
   <li class="item"> Сильно </li>	
 </ul>
 <ul class="list l2">
   <li class="item"> Тест </li>
   <li class="item"> Быстрее </li>	
   <li class="item"> Сильнее </li>	
 </ul>

.before(), .insertBefore() - добавляет заданное содержимое перед элементами на странице

 <ul class="list l1">
   <li class="item it1"> Высоко </li>
   <li class="item it2"> Быстро </li>	
   <li class="item it3"> Сильно </li>	
 </ul>
 <ul class="list l2">	
   <li class="item it1"> Выше </li>
   <li class="item it2"> Быстрее </li>	
   <li class="item it3"> Сильнее </li>	
 </ul>

 $(".it2").before("<li class='item'>Тест</li>");
 $("<li class='item'>Тест</li>").insertBefore($(".it2"));

 <ul class="list l1">
   <li class="item it1"> Высоко </li>	
   <li class="item"> Тест </li>
   <li class="item it2"> Быстро </li>	
   <li class="item it3"> Сильно </li>	
 </ul>
 <ul class="list l2">
   <li class="item it1"> Выше </li>	
   <li class="item"> Тест </li>
   <li class="item it2"> Быстрее </li>	
   <li class="item it3"> Сильнее </li>	
 </ul>

after(), .insertAfter() - добавляет заданное содержимое после элементов на странице

 <ul class="list l1">
   <li class="item it1"> Высоко </li>	
   <li class="item it2"> Быстро </li>	
   <li class="item it3"> Сильно </li>	
 </ul>
 <ul class="list l2">
   <li class="item it1"> Выше </li>	
   <li class="item it2"> Быстрее </li>	
   <li class="item it3"> Сильнее </li>	
 </ul>

 $(".it1").after("<li class='item'>Тест</li>");
 $("<li class='item'>Тест</li>").insertAfter($(".it1"));

 <ul class="list l1">
   <li class="item it1"> Высоко </li>	
   <li class="item"> Тест </li>
   <li class="item it2"> Быстро </li>	
   <li class="item it3"> Сильно </li>	
 </ul>
 <ul class="list l2">
   <li class="item it1"> Выше </li>	
   <li class="item"> Тест </li>
   <li class="item it2"> Быстрее </li>	
   <li class="item it3"> Сильнее </li>	
 </ul>

.wrap(), .wrapAll() - оборачивать элементами заданными html-элементами

 <ul class="list l1">
   <li class="item"> Высоко </li>	
   <li class="item"> Быстро </li>	
   <li class="item"> Сильно </li>	
 </ul>
 <ul class="list l2">
   <li class="item"> Выше </li>	
   <li class="item"> Быстрее </li>	
   <li class="item"> Сильнее </li>	
 </ul>

 $(".list").wrap("<div class='new'></div>");
 
 <div class="new">
   <ul class="list l1">
     <li class="item"> Высоко </li>	
     <li class="item"> Быстро </li>	
     <li class="item"> Сильно </li>	
   </ul>
 </div>
 <div class="new">
   <ul class="list l2">
     <li class="item"> Выше </li>	
     <li class="item"> Быстрее </li>	
     <li class="item"> Сильнее </li>	
   </ul>
 </div>
 

.wrapInner() - оборачивать содержимое элементов заданными тегами

 <ul class="list l1">
   <li class="item"> Высоко </li>	
   <li class="item"> Быстро </li>	
   <li class="item"> Сильно </li>	
 </ul>
 <ul class="list l2">
   <li class="item"> Выше </li>	
   <li class="item"> Быстрее </li>	
   <li class="item"> Сильнее </li>	
 </ul>

 $("ul").wrapInner("<div class="new"></div>");

 <ul class="list l1">
   <div class="new">
     <li class="item"> Высоко </li>	
     <li class="item"> Быстро </li>	
     <li class="item"> Сильно </li>	
   </div>
 </ul>
 <ul class="list l2">
   <div class="new">
     <li class="item"> Выше </li>	
     <li class="item"> Быстрее </li>	
     <li class="item"> Сильнее </li>	
   </div>
 </ul>

.unwrap() - удаляет родительский элемент (содержимое родительского элемента остаётся)

 <div class="new">
   <ul class="list l1">	
     <li class="item"> Сильно </li>	
   </ul>
 </div>
 <div class="new">
   <ul class="list l2">	
     <li class="item"> Сильнее </li>	
   </ul>
 </div>

 $("ul").unwrap();

 <ul class="list l1">	
   <li class="item"> Сильно </li>	
 </ul>
 <ul class="list l2">	
   <li class="item"> Сильнее </li>	
 </ul>

$("div.content").remove();

.remove() - удаляет элементы на странице

.replaceWith(content), .replaceAll(target) - замена одних элементов на другие

 <ul class="list l1">
   <li class="item i1"> Высоко </li>	
   <li class="item i2"> Быстро </li>	
   <li class="item i3"> Сильно </li>	
 </ul>
 <ul class="list l2">
   <li class="item i1"> Выше </li>	
   <li class="item i2"> Быстрее </li>	
   <li class="item i3"> Сильнее </li>	
 </ul>

 $(".i1").replaceWith("<li class='item'>Тест</li>");
 $("<li class='item'>Тест</li>").replaceAll($(".i1"));

 <ul class="list l1">
   <li class='item'>Тест</li>	
   <li class="item i2"> Быстро </li>	
   <li class="item i3"> Сильно </li>	
 </ul>
 <ul class="list l2">
   <li class='item'>Тест</li>	
   <li class="item i2"> Быстрее </li>	
   <li class="item i3"> Сильнее </li>	
 </ul>

.clone(withDataAndEvents) - возвращает копию выбранных элементов страницы

withDataAndEvents — определяет, необходимо ли копировать данные и обработчики событий, установленные на копируемых элементах. По умолчанию, этот параметр равен false.

<div class="container">
  <div class="goodbye">Пока</div>
  <div class="hello">Привет</div>
</div>

$(".hello").clone().appendTo(".container");

<div class="container">
  <div class="hello">Привет</div>
  <div class="goodbye">Пока</div>
  <div class="hello">Привет</div>
</div>

CSS

.css(name), .css(name, value), .css(name, function),

.css({name: value, name: value}) - возвращает или изменяет стили

$(".topBlock").css("top");

$(".topBlock").css("top", "5px");

$(".topBlock").css({"top":"5px", "left":"0"});

.offset(), .position() - возвращает или изменяет позицию элемента

$("div.content").offset();

$("div.content").position();

$(".content").offset({top:30, left:100});

.scrollLeft(), .scrollTop() - возвращает или изменяет величину прокрутки элемента

$("div.content").scrollTop();

$("div.content").scrollLeft(30);

.height() - возвращает или изменяет высоту элемента

.width()возвращает или изменяет ширину элемента

Jquery (day2)

By siarhei

Jquery (day2)

  • 2,136