0

我已经知道 getter/setter 是如何工作的。例如,使 inneHTML 在 NodeLists 上工作

Object.defineProperty(NodeList.prototype,'innerHTML',{set:function(a,b){for(b in this)if(this[b])this[b]['innerHTML']=a}})

我想制作一个基于正在访问的属性输出某些内容的对象。

前任:

dynamicGetter = function(property){return querySelectorAll(property)}
myObject["div>ul>li>a"][0].innerHTML = "foo"
myObject.div[0].style.background="red"

我怎样才能做到这一点?可能吗?

4

1 回答 1

0

操作方法如下:目前,这只适用于 Firefox :(

myObject = Proxy.create({
  get: function(x,property) {
    return document.querySelectorAll(property);
  }
});

myObject["div>ul>li>a"][0].innerHTML = "foo"
myObject.div[0].style.background="red"
于 2012-06-23T15:55:12.707 回答