Javascript通过它的属性检索元素

jol*_*olt 5 html javascript dom

每个HTML元素都有偏移值.我可以返回一个元素,例如,offsetLeft > 10

从来没有听说过这个功能,所以问题.

我知道这可以通过循环来完成,但这些都很慢.有一个关于XPath的想法,但找不到与引用内属性相关的任何内容.

提前致谢!

PS不需要过时的浏览器兼容性 - HTML5'可以做到.

Jam*_*ice 4

据我所知,没有办法不涉及某种形式的循环来做到这一点。您可以使用标准 JS 来完成此操作:

var elems = document.getElementsByTagName("*"),
    myElems = [];
for(var i = 0; i < elems.length; i++) {
   if(elems[i].offsetLeft > 10) myElems.push(elems[i]);
}
Run Code Online (Sandbox Code Playgroud)

或者,如果您使用 jQuery,您可以使用更少的代码来完成它(但它可能更慢!):

var myElems = $("*").filter(function() {
    return $(this).offset().left > 10;
});
Run Code Online (Sandbox Code Playgroud)

如果您考虑一下,您希望选择文档中具有特定属性值的所有元素。无论您是否自己编写,在某些时候总会涉及循环,因为必须检查每个元素。