2014-04-08 31 views
-3

我想知道如何獲得當前元素的信息以及所有父元素,直到給定html頁面上的body標記。我想顯示它的完整路徑並顯示當前元素的class/id以及父級的任何屬性,例如class和id信息。另外,我想知道當前正在懸停的元素是什麼,例如它是div,p,a,li,ul,輸入或其他任何東西。顯示當前元素信息的所有父元素,如名稱,類,id或任何其他屬性

如果任何人只要給我指示或一些提示將有所幫助。我能夠獲取當前元素的信息,沒有任何問題,但找不到當前元素。

請提供您的建議。謝謝。

+0

感謝@羅裏 - mccrossan檢查它。 – Suketu

+2

prevAll將返回所有以前的_siblings_而不是父母 – Stphane

+0

查看「父母」和「每個」的API。 @foobar是的,只是意識到自己:) –

回答

1

我已經編寫了一個jQuery插件幾個星期前的調試目的...

測試小提琴here

(function ($) { 
    var getInfos = function() { 
     var id = this.attr('id'), 
      classes = this.attr('class'); 
     return [this[0].nodeName.toLowerCase() + (id ? '#' + id : '') + (classes ? '.' + classes.replace(/ +(\w)/, '.$1') : '')]; 
    } 
    $.fn.getParentsStack = function() { 
     if (!this.length) return ''; 
     var $t = this.eq(0), 
      list = [getInfos.apply($t)]; 
     $t.parentsUntil('html').each(function (i, el) { 
      list.push(getInfos.apply($(this))); 
     }); 
     return list.reverse().join(' > '); 
    }; 
})(jQuery); 
+0

謝謝@ f00bar也檢查您的代碼。 – Suketu

+0

酷,@ f00bar感謝您的幫助。 – Suketu

+0

http://jsfiddle.net/gK6sp/4/我的自定義 – Suketu

1
var txt = ""; 
function func(n,id) { 
    if(!n) { 
     n = document.getElementById(id); 
    } 
    if(n.tagName.toLowerCase()!='html') { 
     txt += n.tagName+" with id="+(n.id?n.id:"<no id>")+" classes="+(n.className?n.className:"<no classes>")+"\n"; 
     func(n.parentNode,n.parentNode.id); 
    } 
} 

最初使用n作爲'null'調用函數並傳遞節點的id。或者,如果你有節點的參考,你可以通過。所以都給出的原因是,有些元素可能沒有id。有些可能。這就是爲什麼。看看這裏的樣本 -

http://jsfiddle.net/L8WhS/

+0

謝謝,@vivek_nk檢查你的代碼 – Suketu

+0

謝謝。 @vivek_nk – Suketu

相關問題