追記:いまいちだったので書き直し。 var liveQuery = function(){ document.addEventListener("DOMSubtreeModified",update,false); var queries = {}; function liveQuery(selector){ if(!(this instanceof liveQuery)) return new liveQuery(selector); this.toString = function() "[" + selector + "]"; if(this in queries) return queries[this].list; Array.prototype.push.apply(this,Array.slice(document.querySelectorAll(selector)));