通过JavaScript记录所有z索引

通过JavaScript记录所有z索引,javascript,jquery,z-index,Javascript,Jquery,Z Index,我有几个JavaScript库在竞争z-index的优势,我想通过z-index转储完整的元素列表,除了对象类型之外没有任何其他属性 运行以下命令只需遍历一个元素: $('html').each(function () { console.log($(this).css('z-index') + ': ' + $(this).constructor); }); 我该怎么做呢?您现在正在遍历html元素。您要做的是使用*选择器选择所有元素: $("*").each(function ()

我有几个JavaScript库在竞争z-index的优势,我想通过z-index转储完整的元素列表,除了对象类型之外没有任何其他属性

运行以下命令只需遍历一个元素:

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

我该怎么做呢?

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

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

像这样的方法应该会奏效:

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

下面是一个解决方案,它在不使用任何第三方框架的情况下读取计算样式表:

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 */
}

您只选择了一个元素。选择所有内容:$'*'。每个….您可以尝试$*获取给定页面上的所有元素。查看CSS文件不是更容易吗?$this.constructor不会总是返回jQuery吗?@Mathletics,我认为在我的示例中,$this.constructor正在返回包含的函数。。。对象,从me@LeonStafford不,不是。当我在评论之前运行它时,它返回了969个结果。这是第一个完整的答案,谢谢Richard。有一段时间我对.css是足够的信息感到困惑,我认为这是收集层次结构的唯一方法,所以这解决了问题。