Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取某个顶级元素的HTML页面的(背景)颜色_Javascript_Html_Css - Fatal编程技术网

Javascript 获取某个顶级元素的HTML页面的(背景)颜色

Javascript 获取某个顶级元素的HTML页面的(背景)颜色,javascript,html,css,Javascript,Html,Css,首先,document.body.style.backgroundColor在我的例子中没有返回正确的颜色(甚至没有设置),因为页面上都是div 是否有某种方法可以获取顶部像素行中某些像素的颜色?或者其他一些通用方法可以获取某些顶部(或主要)元素的背景颜色?解决方案不一定是精确的,只是基本上是有效的(尤其是对于我的案例:) 对于我目前的情况,有一种方法是这样的: $("div").css("background-color") 但是,我并不完全满意它,因为它有太多的例外,比如它需要JQuery

首先,
document.body.style.backgroundColor
在我的例子中没有返回正确的颜色(甚至没有设置),因为页面上都是div

是否有某种方法可以获取顶部像素行中某些像素的颜色?或者其他一些通用方法可以获取某些顶部(或主要)元素的背景颜色?解决方案不一定是精确的,只是基本上是有效的(尤其是对于我的案例:)

对于我目前的情况,有一种方法是这样的:

$("div").css("background-color")

但是,我并不完全满意它,因为它有太多的例外,比如它需要JQuery,并希望它返回一个相关的div,并且该div有一个背景色集。

类似的内容应该会找到具有背景色的正文的第一个子元素。
请注意,它不会搜索嵌套元素

var el = document.querySelector('body > *'), color = null;

while ( el && !color) {
    color = el && el.style ? el.style.backgroundColor : null;
    el = el.nextSibling;
}

你能准确地写出你的要求吗?因为现在它太乱了,不知道你真正需要什么。所以你不知道页面中的哪个元素设置了背景色?@Mr.Alien:这个问题基本上是粗体的。这是尽可能精确的。其他解决方案不能让我知道颜色是近似值,但如果不可能的话也可以。这对我的情况不起作用,因为颜色是通过CSS类设置的。然后你必须以某种方式使用
getComputedStyle
,但它返回默认颜色
rgba(0,0,0,0)
(透明)即使对于没有背景颜色集的元素,也很难工作。