diff --git a/build/test/js/test.js b/build/test/js/test.js
index e4da77b3..44a405fd 100644
--- a/build/test/js/test.js
+++ b/build/test/js/test.js
@@ -4,7 +4,7 @@ function runTests(files) {
function runTest( files, num ) {
$.get(files[num],function(js){
- js = js.replace(/</g, "<").replace(/>/g, ">");
+ js = js.replace(/</g, "<").replace(/>/g, ">").replace(/&/g, "&");
try {
eval(js);
diff --git a/build/test/test.js b/build/test/test.js
index 453eb5db..6aeeb6b9 100644
--- a/build/test/test.js
+++ b/build/test/test.js
@@ -4,16 +4,15 @@ var dir = arguments[1];
var indexFile = readFile( "build/test/index.html" );
var testFile = readFile( "build/test/test.html" );
-var files = {};
var jq = parse( readFile( arguments[0] ) );
+var fileList = [];
+var count = 1;
+
for ( var i = 0; i < jq.length; i++ ) {
if ( jq[i].tests.length > 0 ) {
-
- var count = 1;
- while ( files[ jq[i].name + count ] ) { count++; }
- var name = jq[i].name + count;
+ var name = count + "-" + jq[i].name;
var myFile = testFile
.replace( /{TITLE}/g, jq[i].name )
@@ -22,17 +21,18 @@ for ( var i = 0; i < jq.length; i++ ) {
var fileName = "tests/" + name + ".js";
- //writeFile( dir + "/" + fileName, myFile );
writeFile( dir + "/" + fileName, jq[i].tests.join("\n") );
- files[ fileName ] = 1;
+ fileList.push( fileName );
+
+ count++;
}
}
var fileString = "";
-for ( var i in files ) {
+for ( var i = 0; i < fileList.length; i++ ) {
if ( fileString ) fileString += ", ";
- fileString += "'" + i + "'";
+ fileString += "'" + fileList[i] + "'";
}
writeFile( dir + "/index.html", indexFile.replace( /{FILES}/g, fileString ) );
diff --git a/src/jquery/jquery.js b/src/jquery/jquery.js
index 08f325c3..017d9ad0 100644
--- a/src/jquery/jquery.js
+++ b/src/jquery/jquery.js
@@ -265,12 +265,10 @@ jQuery.fn = jQuery.prototype = {
* @before
* @result
*
- * @test var div = $("div");
- * div.attr({foo: 'baz', zoo: 'ping'});
- * var pass = true;
- * for ( var i = 0; i < div.size(); i++ ) {
- * if ( div.get(i).foo != "baz" && div.get(i).zoo != "ping" ) pass = false;
- * }
+ * @test var pass = true;
+ * $("div").attr({foo: 'baz', zoo: 'ping'}).each(function(){
+ * if ( this.getAttribute('foo') != "baz" && this.getAttribute('zoo') != "ping" ) pass = false;
+ * });
* ok( pass, "Set Multiple Attributes" );
*
* @name attr
@@ -290,7 +288,7 @@ jQuery.fn = jQuery.prototype = {
* div.attr("foo", "bar");
* var pass = true;
* for ( var i = 0; i < div.size(); i++ ) {
- * if ( div.get(i).foo != "bar" ) pass = false;
+ * if ( div.get(i).getAttribute('foo') != "bar" ) pass = false;
* }
* ok( pass, "Set Attribute" );
*
@@ -1255,28 +1253,26 @@ jQuery.extend({
return r;
},
- attr: function(o,a,v){
- if ( a && a.constructor == String ) {
- var fix = {
- "for": "htmlFor",
- "class": "className",
- "float": "cssFloat"
- };
-
- a = (fix[a] && fix[a].replace && fix[a] || a)
- .replace(/-([a-z])/ig,function(z,b){
- return b.toUpperCase();
- });
-
- if ( v != undefined ) {
- o[a] = v;
- if ( o.setAttribute && a != "disabled" )
- o.setAttribute(a,v);
- }
-
- return o[a] || o.getAttribute && o.getAttribute(a) || "";
- } else
- return "";
+ attr: function(elem, name, value){
+ var fix = {
+ "for": "htmlFor",
+ "class": "className",
+ "float": "cssFloat",
+ innerHTML: "innerHTML",
+ className: "className"
+ };
+
+ if ( fix[name] ) {
+ if ( value != undefined ) elem[fix[name]] = value;
+ return elem[fix[name]];
+ } else if ( elem.getAttribute ) {
+ if ( value != undefined ) elem.setAttribute( name, value );
+ return elem.getAttribute( name, 2 );
+ } else {
+ name = name.replace(/-([a-z])/ig,function(z,b){return b.toUpperCase();});
+ if ( value != undefined ) elem[name] = value;
+ return elem[name];
+ }
},
// The regular expressions that power the parsing engine