Javascript 在HTML页面中获取具有“position:fixed”的所有元素?

Javascript 在HTML页面中获取具有“position:fixed”的所有元素?,javascript,jquery,html,css,dom,Javascript,Jquery,Html,Css,Dom,这样做的原因:我正在调试我网页的css。。有些元素出现了,但它们不应该出现。我怀疑这是元素定位的问题。。因此,我想找到这些定位元素并逐一检查。尝试以下操作: var elements = $('*').filter(function () { return this.style.position == 'fixed'; }); 它将为您提供所有位置固定的元素。document.querySelector('*[style=“position:fixed”]') *项指定所有标记名。[

这样做的原因:我正在调试我网页的css。。有些元素出现了,但它们不应该出现。我怀疑这是元素定位的问题。。因此,我想找到这些定位元素并逐一检查。

尝试以下操作:

var elements = $('*').filter(function () { 
    return this.style.position == 'fixed';
});

它将为您提供所有位置固定的元素。

document.querySelector('*[style=“position:fixed”]')

*
项指定所有标记名。
[]
指示您正在查找属性。您希望样式属性具有
位置:固定的


如果您不使用jQuery,这可能是您最简单的选择。

这一个使用jQuery。我希望你能接受

 var find = $('*').filter(function () { 
        return $(this).css('position') == 'fixed';
    });
我认为这一个使用纯javascript工作:

var elems = document.body.getElementsByTagName("*");
var len = elems.length

for (var i=0;i<len;i++) {

    if (window.getComputedStyle(elems[i],null).getPropertyValue('position') == 'fixed') {
        console.log(elems[i])
    }

}
var elems=document.body.getElementsByTagName(“*”);
var len=元素长度

对于(var i=0;i,这里有一个ES6版本,它为您提供了这些元素的数组以供进一步处理:

let fixedElements = [...document.body.getElementsByTagName("*")].filter(
    x => getComputedStyle(x, null).getPropertyValue("position") === "fixed"
);

你的问题是什么?@SudiptaMaiti看到标题了吗?不知道为什么你在投票时没有用jquery标记这个问题jquery@user2181397oops..忘记了.会做:)@songy:我编辑了答案以包含一个简单的javascript方法,我尝试过:
$('*').filter(function(idx,ele){console.log(ele.style.position);return true;});但有趣的是。。。我没有得到固定位置的元素(无论是相对的,还是绝对的),我真的认为你的方法应该有效。。但我也不知道是怎么回事,我相信只有当样式是内联的时候,这才有效。@geckob啊,耶,哈哈:)你试过了吗?查看此JSFIDLE并请更新
文档。querySelector()
方法只查看标记属性。在不使用jQuery或其他DOM操作框架的情况下,您必须使用
querySelectorAll('*')
来组装所有元素(尽管我会用
div
或类似的东西来替换'*'),然后使用线性搜索尝试匹配
元素.style.position
“fixed”
还有一点注意,我做了一些测试,而且,jsfiddle似乎不支持
querySelectorAll()
的NodeList返回,因此您只能得到第一个元素。尝试在控制台上运行它(类似于
var a=document.queryselectoral('*');console.log(a)
),您将看到您有一个可迭代的object@wilusdaman,如果元素由级联样式表(不是其样式属性)设置样式,则必须使用getComputedStyle,
element.style.position
将在小提琴中为空。而且你的选择器太本地化了,即使这样也不行:@songy:很高兴它能帮上忙。如果你认为它有用,请投票。谢谢