Skip to content

Instantly share code, notes, and snippets.

@danielrohers
Last active August 29, 2015 14:01
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save danielrohers/f74308a7780bc8584f50 to your computer and use it in GitHub Desktop.
Save danielrohers/f74308a7780bc8584f50 to your computer and use it in GitHub Desktop.
Example to fetch the parent node
;(function (w, d, undefined) {
'use strict';
var PN = (function () {
var exports = {};
var _forEach = function (array, callback) {
for (var i = 0; i < array.length; i++) {
callback(array[i]);
}
};
var _getParentNode = function (elements, parent) {
var parentNode = undefined;
_forEach(elements, function (el) {
if (!parentNode && parent === el) {
parentNode = parent;
}
});
return parentNode;
};
var _parent = function (element, node) {
var parentNode = undefined;
var elements = d.querySelectorAll(node);
if (elements) {
var parent = element.parentNode;
while (parent && !parentNode) {
parentNode = _getParentNode(elements, parent);
parent = parent.parentNode;
}
}
return parentNode;
};
exports.parent = _parent;
return exports;
})();
w.PN = PN;
})(window, document);
// how to use
(function (d) {
var input = d.querySelector('#input-name');
var form = PN.parent(input, 'form');
var section = PN.parent(input, '#data');
var div = PN.parent(input, '.form-group');
})(document);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment