我正在尝试获取一个只包含具有background-image属性的元素的数组,但是,我的代码不起作用,我不确定是什么问题。
elements = document.getElementsByTagName("*")
[].filter.call elements, (el) =>
if el.currentStyle
return el.currentStyle['backgroundImage'] isnt 'none'
else if window.getComputedStyle
return document.defaultView.getComputedStyle(el,null).getPropertyValue('background-image') isnt 'none'
答案 0 :(得分:1)
filter()
方法创建一个新数组,其中包含通过所提供函数实现的测试的所有元素。
因此您需要在使用之前存储已过滤的数组:
elements = document.getElementsByTagName("*")
filteredElements = [].filter.call elements, (el) =>
if el.currentStyle
return el.currentStyle['backgroundImage'] isnt 'none'
else if window.getComputedStyle
return document.defaultView.getComputedStyle(el,null).getPropertyValue('background-image') isnt 'none'
// filteredElements is your new array with the filtered elements.