From 52c6739c20838f2d705d404664dcc0cfa07f2c30 Mon Sep 17 00:00:00 2001 From: John Resig Date: Sun, 8 Jul 2007 16:06:10 +0000 Subject: [PATCH] Fixed selected/checked/disabled, added .style support, added .elements. --- build/runtest/env.js | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/build/runtest/env.js b/build/runtest/env.js index 30cd8f1..f4c54bb 100644 --- a/build/runtest/env.js +++ b/build/runtest/env.js @@ -203,6 +203,17 @@ var window = this; window.DOMElement = function(elem){ this._dom = elem; + this.style = {}; + + // Load CSS info + var styles = (new String(this.getAttribute("style") || "")) + .split(/\s*;\s*/); + + for ( var i = 0; i < styles.length; i++ ) { + var style = styles[i].split(/\s*:\s*/); + if ( style.length == 2 ) + this.style[ style[0] ] = style[1]; + } }; DOMElement.prototype = extend( new DOMNode(), { @@ -281,13 +292,22 @@ var window = this; offsetHeight: 0, offsetWidth: 0, - get disabled() { return !!this.getAttribute("disabled"); }, + get disabled() { + var val = this.getAttribute("disabled"); + return val != "false" && !!val; + }, set disabled(val) { return this.setAttribute("disabled",val); }, - get checked() { return !!this.getAttribute("checked"); }, + get checked() { + var val = this.getAttribute("checked"); + return val != "false" && !!val; + }, set checked(val) { return this.setAttribute("checked",val); }, - get selected() { return !!this.getAttribute("selected"); }, + get selected() { + var val = this.getAttribute("selected"); + return val != "false" && !!val; + }, set selected(val) { return this.setAttribute("selected",val); }, get className() { return this.getAttribute("class") || ""; }, @@ -343,7 +363,9 @@ var window = this; submit: function(){}, focus: function(){}, blur: function(){}, - elements: [] + get elements(){ + return this.getElementsByTagName("*"); + } }); // Helper method for extending one object with another -- 1.7.10.4