2012-06-23 31 views
0

我已经知道如何getter/setter方法的工作。例如,使inneHTML在NodeLists上工作我怎样才能让一个动态的getter/setter

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

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

例如:

​​

我怎么能这样做?可能吗?

+0

会不会用一个简单的功能会更好 – biziclop

+0

你不能,javascript中没有这样的?事情 – jcubic

+0

在将来,我们就可以使用代理对象:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Proxy – biziclop

回答

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"