Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/34.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 为什么可以';我不能在这里换zIndex吗?_Javascript_Css_Html - Fatal编程技术网

Javascript 为什么可以';我不能在这里换zIndex吗?

Javascript 为什么可以';我不能在这里换zIndex吗?,javascript,css,html,Javascript,Css,Html,我在一张图片上面放了一堆div。 我试图使div隐藏的分数出现在鼠标悬停时。为了实现这一点,我尝试将div的zIndex设置为低于图像的zIndex,以便显示它。但我似乎可以选择所有的div 以下是我的javascript代码: window.onload = function () { var block = document.getElementById('container'); block.addEventListener('mouseover', function (

我在一张图片上面放了一堆div。 我试图使div隐藏的分数出现在鼠标悬停时。为了实现这一点,我尝试将div的zIndex设置为低于图像的zIndex,以便显示它。但我似乎可以选择所有的div

以下是我的javascript代码:

window.onload = function () {
    var block = document.getElementById('container');

    block.addEventListener('mouseover', function () {
        var blocks = document.querySelectorAll("#container div");
        var index = 0, length = blocks.length;
        for (var index = 0; index < length; index++) {
            blocks[index].style.zIndex = 2;
        }
    });

    for (var i = 0; i < 40; i++) {
        for (var j = 0; j < 40; j++) {
            var div = document.createElement("div");
            div.className = "block";
            div.style.left = j * 25 + 'px';
            div.style.top = i * 25 + 'px';
            div.style.display = "inline-block";
            div.style.verticalAlign = "top";
            div.style.zIndex = "1";
            document.getElementById("container").appendChild(div);
        }
        var jump = document.createElement("br");
        document.getElementById("container").appendChild(jump);
    }
};
window.onload=函数(){
var block=document.getElementById('container');
block.addEventListener('mouseover',function(){
var blocks=document.queryselectoral(“容器div”);
var指数=0,长度=blocks.length;
对于(var索引=0;索引<长度;索引++){
块[index].style.zIndex=2;
}
});
对于(变量i=0;i<40;i++){
对于(var j=0;j<40;j++){
var div=document.createElement(“div”);
div.className=“块”;
div.style.left=j*25+'px';
div.style.top=i*25+‘px’;
div.style.display=“内联块”;
div.style.verticalAlign=“顶部”;
div.style.zIndex=“1”;
document.getElementById(“容器”).appendChild(div);
}
var jump=document.createElement(“br”);
document.getElementById(“容器”).appendChild(跳转);
}
};

我哪里出错了?非常感谢。div容器的背景图像位于已创建的内部div的“下方”。

document.queryselectoral返回一个元素数组。您需要逐个循环它们

var blocks = document.querySelectorAll("#container div");
var index = 0, length = blocks.length;
for ( ; index < length; index++) {
    blocks[index].style.zIndex = 1;
}
var blocks=document.querySelectorAll(“容器div”);
var指数=0,长度=blocks.length;
对于(;索引<长度;索引++){
块[index].style.zIndex=1;
}

如果您只查找单个元素,也可以使用document.querySelector,它返回它找到的第一个与选择器匹配的元素,您可以像最初在代码中一样直接处理它。

可能是因为
Array
没有属性
style
。另外,请记住,这些元素需要完全定位于
z-index
的工作状态(嗯-感谢@j08691指出这一点-保留我的原始评论)
mousehover
事件不存在
mouseover
是正确的。@eithedog-不,那是不正确的。它们只需要定位(即非静态)。另一件事是,如果图像本身在div中,这将不起作用。我在问题中添加了进一步的解释。谢谢你的帮助