Javascript onclick事件无法使用变量引用

时间:2017-03-07 20:41:32

标签: javascript onclick getelementbyid selectors-api

我正在阅读一些代码并尝试在我的结尾逐步复制它。

我正在将一个事件附加到一个特定的按钮上并且点击它应该记录一个声明。

以下代码不起作用: -

(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 个答案:

答案 0 :(得分:1)

"foo".charAt['0']undefined,因为charAt函数,并且没有0属性。

您需要()(调用函数),而不是[](访问对象的属性)。

答案 1 :(得分:0)

您正在使用charAt作为数组,而它是一个函数。

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

看到它正常工作https://jsfiddle.net/

此致