обычный проект(верстка лендинга)
<script>
тэге:// index.html
<body>
...
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</body>
console.log(foo); // undefined - не ошибка
var foo = 5;
console.log(foo); // 5
foo
всплыло и ошибки не будет.var a = 5;
function a() {
return 5;
}
console.log(a) // 5
show
при первом клике и убирать при следующем. Тогда ваш код должен выглядеть так:window.addEventListener("load", ()=>{
let burger = document.querySelector("#desctop-header .burger");
let menu = document.querySelector("#desctop-header .header-menu-wrapper");
burger.addEventListener("click", ()=>{
menu.classList.toggle("show");
});
});
onChange={(e) =>
setTest(
produce((draft) => {
draft.conditions.forEach((c) =>
c.conditionProperties.forEach((prop) => {
if (prop.propertyName === item.propertyName) {
prop.propertyValue = e.target.value;
}
})
);
})
)
}
const lastBusinessWeekStart = subBusinessDays(new Date(), 7);
const lastBusinessMonthStart = subBusinessDays(new Date(), 30);
// фильтр неделя:
test.filter(({ date }) => isWithinInterval(
new Date(date),
{ start: lastBusinessWeekStart, end: new Date() }
));
//фильтр месяц:
test.filter(({ date }) => isWithinInterval(
new Date(date),
{ start: lastBusinessMonthStart, end: new Date() }
));
const summ = {
element: document.getElementById("summ"),
clones: [],
getValue() {
return this.element.textContent;
},
renderClones(selector) {
if (this.clones.length > 0) {
this.clones.forEach((clone) => {
selector.append(clone);
});
}
},
createClone() {
const clone = document.createElement("div");
clone.classList.add(".new-clone");
clone.textContent = this.getValue();
this.clones.push(clone);
this.renderClones(document.body);
},
update(value) {
this.element.textContent = value;
if (this.clones.length > 0) {
this.clones.forEach((clone) => {
clone.textContent = value;
});
}
}
};
summ.createClone();
summ.createClone();
summ.element.addEventListener("click", () => {
summ.update(3000);
});
querySelectorAll
возвращает NodeList всеx найденный нод по селктору. В вашем случае в документе есть 2 ноды попадающие под искомый селектор - input
.[0]
и записываете метод onclick
для 1-ого элемента. Тем самым игнорируя 2-ой элемент(2-ой инпут).onclick
.const inputList = document.querySelectorAll("input");
inputList.forEach(input => {
input.onclick = function() {
if ((input.checked == true) && (input.value == "1")) {
document.body.style.backgroundColor = "#00ff00";
} else if ((input.checked == true) && (input.value == "2")) {
document.body.style.backgroundColor = "#ccff00";
} else {
document.body.style.backgroundColor = "#03f3f3";
}
};
})
catalog-item
по типу<div
class="catalog-item"
data-name="Коробка бурая + бурое дно"
data-size="230*170*90мм"
data-price="120"
data-number="1"
>
...
</div>
catalog-item
:const catalogItems = document.querySelectorAll('.catalog-item');
const basketList = document.querySelector('.basket__list');
catalogItems.forEach((catalogItem) => {
catalogItem.addEventListener("click", (e) => {
if (e.target.classList.contains("catalog-item_basket") {
const {name, size, price, number} = catalogItem.dataset;
const basketItem = document.createElement('div');
basketItem.innerHTML = `
<div class="basket__item">
<img src="img/boxes/image6.jpeg" alt="box" class="basket__item-image">
<div class="basket__item_wrapper">
<div class="basket__item-name">${name}</div>
<div class="basket__item-size">${size}</div>
<div class="basket__item-price">${price}</div>
<div class="basket__item-number">${number}</div>
</div>
</div>
`;
basketList.append(basketItem);
}
})
})