Skip to content

Instantly share code, notes, and snippets.

Created May 20, 2015 19:17
Show Gist options
  • Save anonymous/d639cab52292296ba350 to your computer and use it in GitHub Desktop.
Save anonymous/d639cab52292296ba350 to your computer and use it in GitHub Desktop.
JS Bin // source http://jsbin.com/qulurapewu
<!DOCTYPE html>
<html>
<head>
<script src="https://code.jquery.com/jquery-git.js"></script>
<meta charset="utf-8">
<title>JS Bin</title>
</head>
<body>
<div></div><div><div></div><div></div><div></div><div></div><div></div><div></div><div class='fff'></div></div><div></div><div></div><div></div>
<script id="jsbin-javascript">
$(document).ready(function(){
/****/
jQuery.fn.extend({
getPath: function() {
var pathes = [];
this.each(function(index, element) {
var path, $node = jQuery(element);
while ($node.length) {
var realNode = $node.get(0), name = realNode.localName;
if (!name) { break; }
name = name.toLowerCase();
var parent = $node.parent();
var sameTagSiblings = parent.children(name);
if (sameTagSiblings.length > 1)
{
allSiblings = parent.children();
index = allSiblings.index(realNode) +1;
if (index > 0) {
name += ':nth-child(' + index + ')';
}
}
path = name + (path ? ' > ' + path : '');
$node = parent;
}
pathes.push(path);
});
return pathes.join(',');
}
});
/***/
console.log(jQuery('.fff').first().getPath());
/***/
});
</script>
<script id="jsbin-source-javascript" type="text/javascript">$(document).ready(function(){
/****/
jQuery.fn.extend({
getPath: function() {
var pathes = [];
this.each(function(index, element) {
var path, $node = jQuery(element);
while ($node.length) {
var realNode = $node.get(0), name = realNode.localName;
if (!name) { break; }
name = name.toLowerCase();
var parent = $node.parent();
var sameTagSiblings = parent.children(name);
if (sameTagSiblings.length > 1)
{
allSiblings = parent.children();
index = allSiblings.index(realNode) +1;
if (index > 0) {
name += ':nth-child(' + index + ')';
}
}
path = name + (path ? ' > ' + path : '');
$node = parent;
}
pathes.push(path);
});
return pathes.join(',');
}
});
/***/
console.log(jQuery('.fff').first().getPath());
/***/
});</script></body>
</html>
$(document).ready(function(){
/****/
jQuery.fn.extend({
getPath: function() {
var pathes = [];
this.each(function(index, element) {
var path, $node = jQuery(element);
while ($node.length) {
var realNode = $node.get(0), name = realNode.localName;
if (!name) { break; }
name = name.toLowerCase();
var parent = $node.parent();
var sameTagSiblings = parent.children(name);
if (sameTagSiblings.length > 1)
{
allSiblings = parent.children();
index = allSiblings.index(realNode) +1;
if (index > 0) {
name += ':nth-child(' + index + ')';
}
}
path = name + (path ? ' > ' + path : '');
$node = parent;
}
pathes.push(path);
});
return pathes.join(',');
}
});
/***/
console.log(jQuery('.fff').first().getPath());
/***/
});
@CodeIter
Copy link

jsbin create it anonymously

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment