if (newArr === [])
function getChangeListener(selectNameElement) {
return function() {
const fileName = this.files[0].name
selectNameElement.innerText = filename.slice(0, 15)+ "...." + filename.substring(filename.length - 5);
}
}
fileInput.addEventListener('change', getChangeListener(selectName))
fileInput2.addEventListener('change', getChangeListener(selectName2))
id3-div1-mainText
id
и-div
и-mainText
[class^="id"][class*="-div"][class$="-mainText"] {
color: red
}
id-lorem-div-ipsum-mainText
тоже подойдёт под предложенный выше селектор. Почему консоль выдает ошибку Uncaught ReferenceError: arr is not defined?
function f1(myFunc) {
myFunc(arr, block);
}
function showArr(arr, block) {
arr[3] = arr[3] * 10;
block.innerHTML = arr.join('_');
}
f1(showArr(arr1, out1))
f1
тут не функцию передаёте, а результат её работы, то есть undefined
. Потому что если после названия функции есть круглые скобки, то сначала эта функция вызовется, отработает, и будет использован результат её выполнения. Так как явного return
нет, то showArr
вернёт undefined
. Таким образом эта запись:f1(showArr(arr1, out1))
эквивалентна этой: f1(undefined)
С той лишь разницей, что выполнится код внутри showArr
..f1()
не успевает дойти до ошибки undefined is not a function
потому что внутри f1()
сначала пытается найти переменную arr
. А откуда ей там взяться? Её нет ни в аргументах функции f1()
, ни в вышестоящей области видимости, так как там arr1
.f1(showArr, arr1, out1);
Поэтому ошибку не выдаёт.почему третий элемент массива сохраняет условия и остается 40, хотя в условии я поставил задачу только для четвертого элемента массива?
arr1
по ссылке. То есть один и тот же массив изменяется и в showArr
и в showArr2
.function showArr(arr, block) { // arr = [1, 2, 3, 4, 5, 6, 7, 8]
arr[3] = arr[3] * 10; // поменяли 4ый элемент, массив стал равен [1, 2, 3, 40, 5, 6, 7, 8]
}
function showArr2(arr, block) { // arr = [1, 2, 3, 40, 5, 6, 7, 8]
arr[4] = arr[4] * 100; // поменяли 5ый элемент, массив стал равен [1, 2, 3, 40, 500, 6, 7, 8]
}
f1(showArr, arr1, out1); // и тут
f1(showArr2, arr1, out2); // и тут Вы передаёте один и тот же массив. Массив это ссылочный тип данных. В обоих обработчиках будет один и тот же массив, а не 2 одинаковых
const getDaysWeekElement = (habitName, completed) => {
const arg = (index) => ({ habitName, index });
return weekDays
.map((name, index) =>
completed[index]
? ` <button class="checked" onClick="toggleDayButton(${arg(index)})">
<img width="25" src="./assets/img/check.svg" alt="check" />
</button>`
: `<button onClick="toggleDayButton(${arg(index)})">${name}</button>`,
)
.join('');
};
const getHabitElement = ({ img, name, completed }) => `
<div class="mb-8">
<div class="habit-header">
<img width="80" src="${img}" alt="habit-1" />
<span class="font-semibold text-2xl">${name}</span>
</div>
<div class="habit-plan">
${getDaysWeekElement(completed)} // что принимает функция getDaysWeekElement?
</div>
</div>`;
- ${getDaysWeekElement(completed)}
+ ${getDaysWeekElement(name, completed)}
.closest()
ищет исключительно вверх по дереву, начиная с самого элемента. А .text
не является родительским элементом для картинки.-const message = event.target.closest('.text').textContent;
+ const message = event.target.closest('.message_container').querySelector('.text').textContent;
зачем это объясняется
$('#result').html(data);Вы заменяете всю разметку новой.
$('#result').html($('#result').html() + data)
И если я САМ не могу справиться с такой задачей, то стоит ли делать вывод, что я не осилю даже уровень джуниора попросту потому, что не хватает интеллекта и на программирование стоит забить?
1. Нажал на кнопку
2. Если кнопка вправо
2.1 то нужно извлечь последний элемент из массива и вставить его в начало
2.2 иначе извлечь первый элемент массива и вставить его в конец.
onClickNext
var last = array.pop()
array.unshift(last)
onClickPrev
var first = array.shift()
array.push(first)
2.2 Убедиться в том, что в сети Интернет, и на страницах Сервиса в частности, отсутствуют ответы на данный вопрос. Специально для этого талантливые IT-специалисты создали и развивают поисковые системы Яндекс и Google.
Есть что то по типу next()
var globalVar = "Hello!";
Object.defineProperty(window, 'test', {
get() { return globalVar } // ну и другие необходимые дескрипторы, опущены для примера.
});
console.log(test); // "Hello!"
globalVar = "world!";
console.log(test); // "world!"
.addEventListener
ничего не возвращает. В переменной будет undefined. Соответственно, ни о каких дата атрубтах речи идти не может.document.getElementById('form__code').value = this.querySelector('option[value="'+this.value+'"]').dataset.code