快速选择所有带有css背景图片的元素
我想抓取页面上具有 css 背景图像的所有元素。我可以通过过滤功能来做到这一点,但在包含许多元素的页面上它非常慢:
$('*').filter(function() {
return ( $(this).css('background-image') !== '' );
}).addClass('bg_found');
是否有更快的方法来选择具有背景图像的元素?
I want to grab all elements on a page that have a css background-image. I can do this via a filter function, but it's very slow on a page with many elements:
$('*').filter(function() {
return ( $(this).css('background-image') !== '' );
}).addClass('bg_found');
Is there any faster way to select elements with background images?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您知道任何标签不会有背景图像,您可以改进选择,排除带有
非选择器
(文档)。除此之外,您可以尝试在过滤器中使用更原生的 API 方法。
示例: http://jsfiddle.net/q63eU/
过滤器中的代码基于以下 getStyle 代码: http://www.quirksmode.org/dom/getstyles.html
发布
for
语句版本以避免.filter()
中的函数调用。If there are any tags that you know will not have a background image, you can improve the selection be excluding those with the
not-selector
(docs).Aside from that, you could try using a more native API approach in the filter.
Example: http://jsfiddle.net/q63eU/
The code in the filter is based on the getStyle code from: http://www.quirksmode.org/dom/getstyles.html
Posting a
for
statement version to avoid the function calls in.filter()
.