我正在尝试创建一个小的Javascript"框架",我可以在我的greasemonkey脚本中使用它.我只需要非常基本的功能,所以这就是我选择不使用mooTools或DOMAssistant的原因.此外,我不会傻到把DOMAssitant放在一个20KB的Greasemonkey脚本中!我只想要一小块整洁的代码片段.
我对下面的代码有一个小问题.我认为它是因为我在$()中返回一个数组所以我得到.setStyle不是一个函数错误消息.
var fmini = { $ : function(a) { var i=0,obj,d; var e = []; while (obj = arguments[i++]) { d = document.getElementById(obj); d.setStyle = fmini.setStyle; d.each = fmini.each; e.push(d); } return e; }, setStyle : function(style, value) { if (typeof this.style.cssText !== 'undefined') { var styleToSet = this.style.cssText; if (typeof style === 'object') { for (var i in style) if (typeof i === 'string') styleToSet += ';' + i + ':' + style[i]; } else styleToSet += ';' + style + ':' + value; this.style.cssText = styleToSet; } return this; }, each : function (functionCall) { for (var i=0, il=this.length; i < il; i++) functionCall.call(this[i]); return this; }, } window.$ = fmini.$;
我希望这能在我工作的时候起作用
$('bob','amy').setStyle({ 'border' : '5px solid #ff0000', 'background-color' : '#ccc' });
Crescent Fre.. 6
编写您的方法以对从中返回的节点集进行操作$
.这样既$('bob').setStyle()
和 $('bob', 'amy').setStyle()
会工作.我看到你有一个通用forEach
或each
方法,这是一个良好的开端.
var fmini = { $: function() { var i=0, obj; var e = []; e.setStyle = fmini.setStyle; e.each = fmini.each; while (obj = arguments[i++]) { e.push(document.getElementById(obj)); } return e; }, setStyle : function(style, value) { return this.each(function() { if (typeof this.style.cssText !== 'undefined') { var styleToSet = this.style.cssText; if (typeof style === 'object') { for (var i in style) if (typeof i === 'string') styleToSet += ';' + i + ':' + style[i]; } else styleToSet += ';' + style + ':' + value; this.style.cssText = styleToSet; } }) } }
顺便说一句,这是jQuery
第一个做/ popularze的事情.
编写您的方法以对从中返回的节点集进行操作$
.这样既$('bob').setStyle()
和 $('bob', 'amy').setStyle()
会工作.我看到你有一个通用forEach
或each
方法,这是一个良好的开端.
var fmini = { $: function() { var i=0, obj; var e = []; e.setStyle = fmini.setStyle; e.each = fmini.each; while (obj = arguments[i++]) { e.push(document.getElementById(obj)); } return e; }, setStyle : function(style, value) { return this.each(function() { if (typeof this.style.cssText !== 'undefined') { var styleToSet = this.style.cssText; if (typeof style === 'object') { for (var i in style) if (typeof i === 'string') styleToSet += ';' + i + ':' + style[i]; } else styleToSet += ';' + style + ':' + value; this.style.cssText = styleToSet; } }) } }
顺便说一句,这是jQuery
第一个做/ popularze的事情.