Last active
August 29, 2015 14:01
-
-
Save danielrohers/f74308a7780bc8584f50 to your computer and use it in GitHub Desktop.
Example to fetch the parent node
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;(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