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
好的!我希望我不必在每个方法中都创建循环。是否有其他方法在一个地方创建循环,为每个元素调用该方法?这取决于您在其他方法中要做什么。我建议的方法是最通用的方法,允许您对选择器节点执行任意操作。如果您的所有方法中都有一个特定的模式,那么这可以用来优化包装器代码。好的!谢谢您提供的信息和示例。