我想知道如何獲得當前元素的信息以及所有父元素,直到給定html頁面上的body標記。我想顯示它的完整路徑並顯示當前元素的class/id以及父級的任何屬性,例如class和id信息。另外,我想知道當前正在懸停的元素是什麼,例如它是div,p,a,li,ul,輸入或其他任何東西。顯示當前元素信息的所有父元素,如名稱,類,id或任何其他屬性
如果任何人只要給我指示或一些提示將有所幫助。我能夠獲取當前元素的信息,沒有任何問題,但找不到當前元素。
請提供您的建議。謝謝。
我想知道如何獲得當前元素的信息以及所有父元素,直到給定html頁面上的body標記。我想顯示它的完整路徑並顯示當前元素的class/id以及父級的任何屬性,例如class和id信息。另外,我想知道當前正在懸停的元素是什麼,例如它是div,p,a,li,ul,輸入或其他任何東西。顯示當前元素信息的所有父元素,如名稱,類,id或任何其他屬性
如果任何人只要給我指示或一些提示將有所幫助。我能夠獲取當前元素的信息,沒有任何問題,但找不到當前元素。
請提供您的建議。謝謝。
我已經編寫了一個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);
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。有些可能。這就是爲什麼。看看這裏的樣本 -
感謝@羅裏 - mccrossan檢查它。 – Suketu
prevAll將返回所有以前的_siblings_而不是父母 – Stphane
查看「父母」和「每個」的API。 @foobar是的,只是意識到自己:) –