javascript - 对象/函数混合

标签 javascript function object

我摆弄了很多片段,但这是迄今为止我最接近的:

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/

相关文章:

java - 如何将 javascript 变量传递给 jsp 文件 liferay

javascript - 使用js删除一个html按钮

javascript - 输入键验证 contenteditable

javascript - 我可以将此函数传递给 JavaScript 中的另一个函数吗?

javascript - 如何将自定义标量函数按元素应用于 math.js 中的矩阵?

class - 如何在文档中引用实例方法?

c++ - 如何在不导致内存错误的情况下从 vector 中删除对象指针?

javascript - Bootstrap 的日期选择器(仅选择周并使其在 IE 中工作)

python - If 语句 - 这是一个字符串吗?

c++ - 声明指向对象的指针作为类成员对象的参数