0

ゲッター/セッターがどのように機能するかはすでに知っています。たとえば、NodeList で inneHTML を機能させる

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 に答える