<form>
<button type="submit">Go</button>
<button class="add">Добавить</button>
</form>
<ul class="list"></ul>
let index = 0;
let list = $(".list");
$("form").bind("submit", event => { // bind!!!
event.preventDefault();
list.find("li").each(item => {
alert(item);
});
});
$(".add").on("click", event => {
event.preventDefault();
const li = document.createElement("li");
li.textContent = index++;
list.append(li);
})
// Лаконичнее этот вакуумный кусок кода написать на pure JS: (Но это не лучшая практика, делать так все таки не стоит)
[...document.querySelectorAll("a")].forEach(link => link.addEventListener("click", event => {
event.preventDefault();
}, false));
// К тому же...Либо вы используете ссылки с href, либо используете другие компоненты, например button.
// Ссылка она на то и ссылка, что должна куда то ссылаться.
// Что то типа этого...но это дико ужасно. Вам явно нужно задуматься над другой реализацией.
// Хотя бы используйте шаблонизатор какой нибудь.
const list = document.querySelector("ol");
const createList = (list, questions) => {
for (let i = 0; i < questions.length; i += 1) {
let question = questions[i];
let index = i + 1;
let li = document.createElement("li");
let span = document.createElement("span");
li.classList.add("test-li");
span.classList.add("quest quote__main");
span.textContent = question.text;
li.appenChild(span);
list.appendChild(li)
for (let answer in question.answers) {
let input = document.createElement("input");
input.setAttribute("type", "radio");
input.setAttribute("name", `i${index}`);
input.setAttribute("id", "test-radio");
input.value = answer;
input.textContent = question.answers[answer];
input.addEventListener("click", event => {
engine(i, event.target.value);
}, false);
list.appendChild(input);
}
}
};
createList(list, questions);
<div class="clicker">
<button class="prev">-</button>
<span class="counter"></span>
<button class="next">+</button>
</div>
const counter = document.querySelector(".counter");
let count = parseInt(localStorage.getItem("count") || 0);
counter.textContent = count;
document.querySelector(".clicker").addEventListener("click", event => {
if (event.target.closest(".prev")) {
localStorage.setItem("count", --count);
counter.textContent = localStorage.getItem("count");
}
if (event.target.closest(".next")) {
localStorage.setItem("count", ++count);
counter.textContent = localStorage.getItem("count");
}
}, false);
function drawPlaces(json, section) {
let container;
let circleClass;
let statusObj;
switch (section) {
case "VIP":
container = "#VIP_0020parter";
break;
case "Партер":
container = "#parter";
break;
case "Бельэтаж":
container = "#belletaj";
break;
case "Балкон":
container = "#balcony";
break;
}
for (let item of JSON.parse(json)) {
switch (item.status) {
case "Забронировано":
circleClass = "reserved"
break;
case "В обработке":
circleClass = "reserved"
break;
case "Куплено":
circleClass = "closed";
break;
}
$(container).find(`[tc-row-no=${item.row}]`).find(`[tc-seat-no=${item.col}]`).addClass(circleClass);
}
}
String {0: "о", length: 1, [[PrimitiveValue]]: "о"}
const obj = {
name: "Alex",
gender: "male"
};
const arr = [1, 2, 3, 4, 5];
alert(obj); // [object Object]
alert(arr); // 1, 2, 3, 4, 5 // Перезаписанный метод toString();
// Тоже самое
alert(Object.prototype.toString.call(obj)) // [object Object] (obj.toString());
alert(Array.prototype.toString.call(arr)) // 1, 2, 3, 4, 5 (arr.toString());
const Super = function(superProp) {
this.superProp = superProp;
};
// Присваивать prototype объект не нужно.
// Нужно только добавлять данные,
// иначе прототип будет перезаписан на обычный объект,
// у которого нет свойств которые содержит prototype по умолчанию
Super.prototype.superMethod = function() {
console.log("I am Super Class");
};
// Так делать не нужно - Super.prototype = {
// some code
// };
// Super.prototype = { После добавления свойств в prototype, он будет выглядеть примрно так
// constructor: Super, // свойства по умолчанию
// __proto__: Object.prototype, // default
// superMethod: function() {
// // some code
// }
// };
const SubClass = function(subProp) {
Super.apply(this, arguments); // Вызов конструктора супер класса
this.subProp = subProp;
// __proto__ = Super.prototype;
}
SubClass.prototype = Object.create(Super.prototype); // Создаем объект прототипа на основе прототипа супер класса
SubClass.prototype.constructor = SubClass; // Перезаписываем свойство constructor
SubClass.prototype.subMethod = function() {
console.log("I am subClass");
};