Javascript 图书馆中的查询选择器

Javascript 图书馆中的查询选择器,javascript,Javascript,我有以下代码: (function (window, document, undefined) { var g = function (sel) { return { selector: document.querySelector(sel), on: function (evt, fn) { if (this.selector) this.selector.addEventListener(evt, fn, false);

我有以下代码:

(function (window, document, undefined) {

  var g = function (sel) {

    return {

      selector: document.querySelector(sel),

      on: function (evt, fn) {
        if (this.selector) this.selector.addEventListener(evt, fn, false);
        return this;
      }
    };
  };

  window.g = window._ = g;

})(this, document);
如何在此上下文中使用
querySelectorAll
而不是
querySelector
,以便选择多个元素。特别是考虑到将有多种方法,如上的
。如何循环所有元素并将它们返回到它调用的方法。

选择器:document.queryselectoral(sel),
selector: document.querySelectorAll(sel),
on: function (evt, fn) {
    if (this.selector) {
        for (var i=0, len=this.selector.length; i < len; i++)
            this.selector[i].addEventListener(evt, fn, false);
    return this;
}
开启:功能(evt,fn){ if(此.selector){ for(var i=0,len=this.selector.length;i
如果您必须在许多方法中重复使用该循环,只需创建一个包装器,诸如此类

selector: document.querySelectorAll(sel),
forEach: function (codeToApply) {
    for (var i=0, len=this.selector.length; i < len; i++)
            codeToApply.call(this, this.selector[i]);
},
on: function (evt, fn) {
    if (this.selector) {
        this.forEach(function (element) {
            element.addEventListener(evt, fn, false);
        }
    return this;
}
选择器:document.queryselectoral(sel),
forEach:函数(codeToApply){
for(var i=0,len=this.selector.length;i
好的!我希望我不必在每个方法中都创建循环。是否有其他方法在一个地方创建循环,为每个元素调用该方法?这取决于您在其他方法中要做什么。我建议的方法是最通用的方法,允许您对选择器节点执行任意操作。如果您的所有方法中都有一个特定的模式,那么这可以用来优化包装器代码。好的!谢谢您提供的信息和示例。