location.js 744 B

1234567891011121314151617181920212223242526
  1. function location(e){
  2. $.fn.reverse = [].reverse;
  3. var h=$(e).parents().reverse().add($(e));
  4. var f=function(){
  5. var p=$(this).parent();
  6. var t=p.get(0).tagName;
  7. if(t===undefined)return;
  8. return t+"="+p.children().index(this);
  9. };
  10. return h.map(f).get().join(",");
  11. };
  12. function locator(node){
  13. if (node === undefined) return "undefined";
  14. return (f = function(node){
  15. if (node.tagName === "HTML") return "$('html')";
  16. var child = $(node);
  17. var parent = child.parent();
  18. var prefix = f(node.parentNode);
  19. if (node.nodeName === "#text") {
  20. return prefix + ".contents()" + ".eq(" + parent.contents().index(node) + ")";
  21. } else {
  22. return prefix + ".children()" + ".eq(" + parent.children().index(node) + ")";
  23. }
  24. })(node) + ".get(0)";
  25. };