javascript - 网页颜色检索适用于 jQuery 但不适用于 javascript

标签 javascript jquery css dom element

我创建了一个 jQuery 函数来检索用于网页的颜色:

$('*').each(function(i, el){    

var $element = $(el),
color = $element.css('background-color');

if(!~$.inArray(color, colors))
    colors.push(color);

});

它对我来说很好用。 现在我需要将这段代码转换成纯 javascript,我这样写:

var elements = Array.prototype.slice.call(document.getElementsByTagName('*')),
len = elements.length,
i, node, color;

for (i = 0; i < len; i++) {
 node = elements[i];
 color = node.style.backgroundColor;

 if (color && !~colors.indexOf(color)) {
  colors.push(color);
 }
}

但是对于每个元素,元素 node.style.backgroundColor 永远是空的,就像这个截图

enter image description here

为什么在 jquery 中一切都完成了,而使用 javascript 转换脚本却不能正常工作?

最佳答案

您应该对 css 样式使用 getComputedStyle 方法,因为 node.style.backgroundColor 仅适用于内联样式(如本问题中所建议的 Javascript - getting the background color of the hovered element )

//try this
getComputedStyle(target).backgroundColor

关于javascript - 网页颜色检索适用于 jQuery 但不适用于 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27147654/

相关文章:

css - 显示 :flex not working in Chrome

javascript - 使表单中的 "helper"文本与键入文本的颜色不同

javascript - 将占位符添加到 ng-grid

Javascript/JQuery 如何验证电话号码

jquery - 通过 Nuget 添加新版本的 Jquery 以及 t4mvc 的问题

javascript - 水平滚动的背景图像

javascript - 如何阻止事件影响图库?

javascript - requirejs:我可以要求一个全局运行时变量吗?

javascript - 使用 CSS 创建像无限滚动一样的 slider

javascript - 如何使用点击事件jquery处理模糊事件