diff --git a/dev/js/spec/hintSpec.js b/dev/js/spec/hintSpec.js
index 45850a4..a78a835 100644
--- a/dev/js/spec/hintSpec.js
+++ b/dev/js/spec/hintSpec.js
@@ -84,7 +84,7 @@
     it('should be initializable', function () {
       // Supports: context, searchField
       var inputField = inputClass.create(input);
-      expect(inputField._element).not.toBe(undefined);
+      expect(inputField._el).not.toBe(undefined);
     });
 
     it('should have text', function () {
diff --git a/dev/js/spec/menuSpec.js b/dev/js/spec/menuSpec.js
index a2ca40b..12a8fc1 100644
--- a/dev/js/spec/menuSpec.js
+++ b/dev/js/spec/menuSpec.js
@@ -74,8 +74,8 @@
       },
       element : function () {
         // already defined
-        if (this._element !== undefined)
-	        return this._element;
+        if (this._el !== undefined)
+	        return this._el;
 
         // Create list item
         var li = document.createElement("li");
@@ -93,7 +93,7 @@
 	        desc.appendChild(document.createTextNode(this._desc));
 	        li.appendChild(desc);
         };
-        return this._element = li;
+        return this._el = li;
       }
     };
 
diff --git a/dev/js/spec/queryCreatorSpec.js b/dev/js/spec/queryCreatorSpec.js
index 09189bc..780a7bf 100644
--- a/dev/js/spec/queryCreatorSpec.js
+++ b/dev/js/spec/queryCreatorSpec.js
@@ -702,7 +702,7 @@
 
       qc._q = document.createElement('input');
       
-      qc._element.click();
+      qc._el.click();
 
       expect(qc._ql.selectedIndex).toEqual(1);
       expect(qc._q.value).toEqual("[orth=Baum]");
diff --git a/dev/js/spec/vcSpec.js b/dev/js/spec/vcSpec.js
index f30498e..7beede7 100644
--- a/dev/js/spec/vcSpec.js
+++ b/dev/js/spec/vcSpec.js
@@ -1336,14 +1336,14 @@
 
       // Remove operand 1
       expect(docGroup.delOperand(doc).update()).not.toBeUndefined();
-      expect(doc._element).toEqual(undefined);
+      expect(doc._el).toEqual(undefined);
 
       doc = docGroup.getOperand(1);
       expect(doc.key()).toEqual("foo");
 
       // Remove operand 1
       expect(docGroup.delOperand(doc).update()).not.toBeUndefined();
-      expect(doc._element).toEqual(undefined);
+      expect(doc._el).toEqual(undefined);
 
       // Only one operand left ...
       expect(docGroup.getOperand(1)).toBeUndefined();
