diff --git a/js/tinyDOM.js b/js/tinyDOM.js
index 603028d3c7c24c09028e59235b3e0ee3cd789625..e4898fab963c8e177e5c4736e4aa121f5876a54c 100644
--- a/js/tinyDOM.js
+++ b/js/tinyDOM.js
@@ -126,8 +126,20 @@
 				return null;
 			}
 		},
-        parent: function() {
-            return tinyDOM(this[0].parentNode);
+        parent: function(selector) {
+            var e = this[0].parentNode, stn = true;
+            if (tinyDOM.exists(selector)) {
+                while (e != null && e != document) {
+                    if (e.matches(selector)) {
+                        stn = false;
+                        break;
+                    } else {
+                        e = e.parentNode;
+                    }
+                }
+                e = stn ? null : e;
+            }
+            return tinyDOM(e);
         },
         children: function() {
             var n = this[0].childNodes,