Столкнулся с проблемой, при считывании значении элемента выводит undefined
. Есть две кнопки которым на onclick
стоит одна функция. В каждой кнопке есть свое value
, но функция отказывается читать его и выводит undefined
.
Подскажите, что я сделал не так, где ошибка?
function someFunc(){
var value = this.value
document.write(value);
}
<button class="btSize" onclick="someFunc()" value="minus">-</button>
<button class="btSize" onclick="someFunc()" value="plus">+</button>
Проблема в this
. Его можно записать в событии в HTML, и получать как параметр функции:
function someFunc(e){
var value = e.value
console.log(value);
}
<button class="btSize" onclick="someFunc(this)" value="minus">-</button>
<button class="btSize" onclick="someFunc(this)" value="plus">+</button>
Или... можно не заморачиваться с onclick="..."
и сразу в скрипте всё записать:
let x = document.getElementsByClassName('btSize');
for(let i = 0; i < x.length; i++){
x[i].addEventListener('click', function(){
console.log( this.value );
/* здесь this сразу указывает на элемент, запустивший функцию
x[i].value — выдало бы тот же результат */
});
}
<button class="btSize" value="minus">-</button>
<button class="btSize" value="plus">+</button>
Более страшный вариант:
let x = document.getElementsByClassName('btSize');
[...x].forEach( (e)=> e.addEventListener('click', ()=> console.log( e.value ) ) );
/* Перевод в чуть более человеческий вид:
[...document.getElementsByClassName('btSize')].forEach(
function(element){
element.addEventListener('click', function(){
console.log( this.value );
});
}
);
*/
<button class="btSize" value="minus">-</button>
<button class="btSize" value="plus">+</button>
function someFunc(element) {
this.value = element.value;
console.log(this.value);
}
<button class="btSize" onclick="someFunc(this)" value="minus">-</button>
<button class="btSize" onclick="someFunc(this)" value="plus">+</button>
function someFunc(){
var value = this.value
document.write(value);
}
document.querySelectorAll('.btSize')[0].onclick =
document.querySelectorAll('.btSize')[1].onclick = someFunc;
<button class="btSize" value="minus">-</button>
<button class="btSize" value="plus">+</button>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Нагуглил метод select(), но все равно ничего не выходит
Необходимо клонировать коллекцию так, чтобы все её объекты Element так же отвязались от исходной коллекцииПодскажите, как лучше всего это сделать?