首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何访问Javascript数组中的元素(div ClassNames),并更改它们的不透明度?

如何访问Javascript数组中的元素(div ClassNames),并更改它们的不透明度?
EN

Stack Overflow用户
提问于 2019-02-19 03:29:47
回答 5查看 54关注 0票数 1

我有一个数组,它是通过ClassName搜索元素而生成的:

代码语言:javascript
运行
复制
var tempNodeList = document.getElementsByClassName("grids");

如何访问每个元素(基本上是div)并更改它们的不透明度?我已经尝试过了:

代码语言:javascript
运行
复制
tempNodeList[b].style.opacity = 0

其中"b“是for-in循环中的变量。然而,我似乎无法接触到对象来影响它们的不透明度/其他属性。

编辑:我确实将HTML集合/NodeList转换为数组。新数组称为allBoxes。但我似乎不能通过以下命令访问元素:

代码语言:javascript
运行
复制
allBoxes[1].style.opacity

这是我的函数(仍在开发中)。末尾的注释掉的行是我用来尝试对数组中的项运行淡入淡出循环的行。

代码语言:javascript
运行
复制
box01.addEventListener("mouseenter", fadeOutBoxes);

box02.addEventListener("mouseenter",fadeOutBoxes);

函数fadeOutBoxes(e) {

代码语言:javascript
运行
复制
var thisBox = e.target.id;

var grid = thisBox.slice(0, 4);
var tempBoxNum = thisBox.slice(4);
var boxNum = ("0" + tempBoxNum).slice(-2);
var gridBoxNum = grid.concat(boxNum);

console.log("grid = " + grid);
console.log("tempBoxNum = " + tempBoxNum);
console.log("boxNum = " + boxNum);
console.log("gridBoxNum = " + gridBoxNum);

///// for in enumerative testing //////////////////////
var tempNodeList = document.getElementsByClassName("grids"); /// THIS CREATES AN HTML COLLECTION-NOT AN ARRAY
console.log(tempNodeList.valueOf()); //for testing - just lists out the array elements
var allBoxes = Array.from(tempNodeList); /// CONVERT THE HTML COLLECTION TO AN ARRAY
    console.log(allBoxes);

for (var b in allBoxes) {
    console.log(allBoxes[b].id);

        //if (allBoxes[b].id === "grid01") { // works with specified name
        if (allBoxes[b].id === gridBoxNum) { // trying with programmatically generated name


            //remove THIS BOX from array
            allBoxes.splice(b, 1);
        }

    ////// run fades on the newly trimmed array of gridBoxes
    var op = 1; // intial opacity
    var timer = setInterval(function () {
    if (op <= 0.1){
        clearInterval(timer);   
    }
    //e.target.style.opacity = op; // HOLD - original opacity fade command
    //console.log("e.target.style.opacity: " + e.target);
    //allBoxes[1].style.opacity = op;
    op -= op * 0.1;
    }, 20);
}

}

EN

Stack Overflow用户

发布于 2019-02-19 03:54:37

代码语言:javascript
运行
复制
Array.from(tempNodeList).forEach(
    a => a.style.opacity = 0
)
票数 0
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54754110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档