我摆弄了很多片段,但这是迄今为止我最接近的:
function Q(a){
if(typeof a=="string"){
var b=a[0],c=a.substring(1);
return b=="#"?document.getElementById(c):b=="."?document.getElementsByClassName(c):document.getElementsByTagName(a);
}
}
Q.setClass=function(b){a.className=b}
我希望能够执行Q("#ID").setClass("testClass");
我该怎么做?
最佳答案
您的问题中没有对象函数混合。您需要一个Q
(构造函数/工厂)函数来生成一个对象,该对象具有setClass
(方法)< em>功能。
这可以例如这样完成:
function Q(el) {
if (typeof el=="string") {
var b = el.charAt(0),
c = el.substring(1);
el = b=="#"
? [document.getElementById(c)]
: b=="."
? document.getElementsByClassName(c)
: document.getElementsByTagName(a);
}
return {
setClass: function(cls) {
for (var i=0; i<el.length; i++)
el[i].className = cls;
}
};
}
关于javascript - 对象/函数混合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25998892/