const anchors = [];
[...document.querySelectorAll('a')].forEach(($link) => {
let href = $link.getAttribute(`href`);
if (href.startsWith(window.location.href)) {
href = href.split(window.location.href).join(``);
}
if (href.startsWith(window.location.pathname)) {
href = href.split(window.location.pathname).join(``);
}
if (href !== `#` && href.startsWith(`#`)) {
anchors.push({
href,
text: $link.textConent,
});
}
});
console.log(anchors);
let users = [];
let nameFilter = ``;
// TODO: Тут вы реализуете изменение значения nameFilter из какого-то поля и после этого снова вызываете render()
const render = () => {
document.body.innerHTML = users
.filter((item) => !nameFilter || item.name.toUpperCase().includes(nameFilter.toUpperCase())
.map((item) => `<span class="name">${item.name}</span>`).join(``));
}
fetch(`users.json`)
.then((res) => res.json())
.then((data) => users = data)
.then(render);
получается так, что кнопка добавляется только к последней карточкеНа самом деле нет, кнопка последовательно добавляется к каждой карточке. Но поскольку вы используете один и тот же элемент, а не создаёте в цикле отдельную кнопку для каждой карточки, она при каждой последующей вставке переносится на новое место и в итоге остаётся у последней карточки.
let panesList = document.querySelectorAll('.pane');
for (let pane of panesList) {
let button = document.createElement('button');
button.classList.add('remove-button');
button.textContent = '[X]';
pane.append(button);
}
$(".box43z6r6QZ").click(function(){
var $el = $(this);
$el.addClass("hG8KlY3Q");
setTimeout(function(){
$el.removeClass("hG8KlY3Q");
}, 1000);
});
<select>
<option value="1" selected="selected">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<button>Reset</button>
const $select = document.querySelector('select');
document.querySelector('button').addEventListener('click', () => {
$select.value = $select.querySelector('option[selected]').value;
});
Итак, что делает метод response.formData внутри fetch? Подскажите, кто знает, как его правильно применять.
The formData() method of the Response interface takes a Response stream and reads it to completion. It returns a promise that resolves with a FormData object.
Note: This is mainly relevant to service workers. If a user submits a form and a service worker intercepts the request, you could for example call formData() on it to obtain a key-value map, modify some fields, then send the form onwards to the server (or use it locally).
- document.querySelector('container');
+ document.querySelector('.container');
test[test2]
. - i while(<= arr){
+ i while(<= arr.length){
response.json()
будет ждать окончания запроса, setCart
будет ждать json
, setPreloader
будет ждать их обоих или падения.Этот заголовок должен формироваться на клиенте, или этот заголовок формируют сами роботы?Какая разница в рамках задачи?
Обработка такого заголовка на бэке производится в настройках самого сервера, или где-то в коде самого приложения?Если веб-сервер может определить дату изменения сущности самостоятельно (например, речь про какой-то файл), то, конечно, лучше обрабатывать им. Но изменялась у вас карточка товара или нет, например, веб-сервер узнать не может, это знает только приложение.
useEffect(() => () => {
if (countDown.current) {
countDown.current.stop();
}
}, []);
Т.е. операции по типу [[...arr], value] так же сработают по скорости и логике, как arr.push(value)?Про скорость ответили, скажу про логику: она у этих операций разная. В первом случае создаётся новый массив, во втором изменяется существующий. Это важно, если важна иммутабельность, как, например, в Реакте.
if (document.getElementById('recaptcha1')) {
grecaptcha.render('recaptcha1', {
'sitekey': 'mysitekey',
'callback': onRecaptchaSuccess,
'expired-callback': onRecaptchaExpired,
'timeout': 120000
});
}
slick-initialized
, ваши стили должны отменяться или перебиваться Сликом..mobile-slick .privilege-card:first-child ~ .privilege-card {
display: none;
}
.mobile-slick.slick-initialized .privilege-card:first-child ~ .privilege-card {
display: inherit;
}