2013-09-25 39 views
-2

我有几个JavaScript库争夺z-index霸权,并且希望通过z-index转储出除了对象类型以外没有任何其他属性的完整元素列表。通过JavaScript记录所有z-索引

运行下面给我只有一个遍历元素:

$('html').each(function() { 
    console.log($(this).css('z-index') + ': ' + $(this).constructor); 
}); 

我该怎么办呢?

+5

您只选择一个元素。选择所有的东西:'$('*')。each(...)'。 – Mathletics

+0

您可以尝试$(“*”)来获取给定页面上的所有元素。 –

+4

看看你的CSS文件不是更容易吗? –

回答

3

像这样的东西应该工作:

$("*").each(function(k, v){ 
    console.log(v.nodeName + " " + $(v).css("z-Index")); 
}) 
+0

这是第一个完整答案,感谢理查德。我对.css()有足够的信息感到困惑,我认为这是收集层次结构的唯一方法,所以这解决了问题。 –

4

您现在正在遍历html元素。你想要做的是使用*选择器选择的所有元素:

$("*").each(function() { 
    ... 
+0

@LeonStafford恩,不,不。当我在评论前运行它时,它返回了969个结果。 – Mathletics

+0

对,你是我的错误。 –

1

这里是一个解决方案,它读取计算styleheets没有任何第三方框架:

var elems = document.querySelectorAll('*'); 

for(var i = 0, len = elems.length; i < len; i++) { 

    var style = window.getComputedStyle(elems[i]); 

    console.log(elems[i].nodeName, style.getPropertyValue('z-index')); 

    /* style['z-index'] will also work, but it is better to use the API if there is one, in case something get's changed */ 
} 
+0

谢谢,我欣赏纯JS版本 –