Событие Javascript onclick не работает со ссылкой на переменную

Я читаю некоторый код и пытаюсь повторить то же самое в моем конце, шаг за шагом.

Я прикрепляю событие к определенной кнопке и нажимаю на нее, чтобы записать заявление.

Ниже приведен код, который не работает:

(function(){

var el = function(element){
    if(element.charAt['0'] === '#'){
        return document.querySelector(element);
    }
    return document.querySelectorAll(element);
}

var viewer = el('#viewer');
var clear = el('#clear');

console.log(clear);

 var clearAll = function(){
    console.log('Clearing');
 };

//click event
clear.onclick = clearAll;

})();

Над функцией используется для получения элементов.

Код ниже работает

document.getElementById('clear').onclick = clearAll;

или же

document.querySelector('#clear').onclick = clearAll;

Я не понимаю, почему вышеприведенный код не работает. Пожалуйста помоги.

2 ответа

"foo".charAt['0'] является undefined так как charAt является функцией и не имеет 0 имущество.

Тебе нужно () (для вызова функции), а не [] (для доступа к свойствам объекта).

Вы используете charAt в качестве массива, в то время как это функция.

var el = function(element){
    if(element.charAt('0') === '#'){
        return document.querySelector(element);
    }
    return document.querySelectorAll(element);
}

Посмотрите это работает https://jsfiddle.net/

С Уважением,

Другие вопросы по тегам