当我使用我的函数时,Javascript style.display 没有更新样式

派洛特

我正在尝试创建一个功能,当您单击一个按钮时,它会删除一个 div,并添加另一个 div,然后当您再次按下该按钮时,它将删除该 div 和另一个 div。这大约进行了 4 次,直到我到达终点,然后当我再次按下按钮时,它应该回到开头。我究竟做错了什么?

let switchData = (selected, removed1, removed2, removed3) => {
    if(!document.getElementById("show-next-data")) {
        return;
    }
    document.getElementById("show-next-data").addEventListener("click", ()=> {
        let infoData = [selected, removed1, removed2, removed3];   

        document.getElementById(selected).style.display = "block";
        /*for (let i = 0; i < infoData.length; i++) {
            document.getElementById(infoData[i]).style.display = "none";
        }*/
        document.getElementById(removed1).style.display = "none";
        document.getElementById(removed2).style.display = "none";
        document.getElementById(removed3).style.display = "none";

    });
}
switchData("dog-care", "cat-care", "youtube-media", "table-data");
switchData("cat-care", "dog-care", "youtube-media", "table-data");
switchData("youtube-media", "cat-care", "dog-care", "table-data");
switchData("table-data", "cat-care", "youtube-media", "dog-care");
<div id="info-content">
    <div id="dog-care">
        <h1 id="animal-info">How To Take Care Of My Dog:</h1>
        <h4 id="animal-info">Make sure your dog is well fed 
        </h4>
    </div>
    <div id="cat-care">
        <h1 id="animal-info">How To Take Care Of My Cat:</h1>
        <h4 id="animal-info">Make sure your cat is well fed 
        </h4>
    </div>
    <div id="youtube-media">
        <iframe width="200%" height="300%" src="https://www.youtube.com/embed/Yzv0gXqoCkc" title="YouTube video player" 
        frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" ></iframe>
    </div>
    <div id="table-data">

        <h1>table goes here</h1>

    </div>

    <h1 id="show-next-data">︾</h1>
  </div>

卡斯滕·马斯曼

少写多做,让你的生活更轻松:

const divs = document.querySelectorAll("#info-content>div");
var idx=0;
divs.forEach(nextDiv); // step through all divs once to hide them all but the first ...
document.getElementById("show-next-data").onclick=nextDiv;
function nextDiv(){
 divs[idx].style.display="none";
 divs[idx=(idx+1)%divs.length].style.display="";
};
<div id="info-content">
  <div id="dog-care">
    <h1 id="animal-info">How To Take Care Of My Dog:</h1>
    <h4 id="animal-info">Make sure your dog is well fed
    </h4>
  </div>
  <div id="cat-care">
    <h1 id="animal-info">How To Take Care Of My Cat:</h1>
    <h4 id="animal-info">Make sure your cat is well fed
    </h4>
  </div>
  <div id="youtube-media">
    <iframe width="200%" height="300%" src="https://www.youtube.com/embed/Yzv0gXqoCkc" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"></iframe>
  </div>
  <div id="table-data">
    <h1>A table goes here</h1>
  </div>

  <button id="show-next-data">︾</button>
</div>

该函数nextDiv()显示下一个dividx(集合中的索引号divs(通过选择器找到#info-content>div)开始。当前的 div 被隐藏,idx 增加,并且通过将其.style.display属性重置为""(一个空字符串)来显示下一个 div。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

当我使用续集的字面量时,没有结果

当style =“ display:none;”时,硒上传文件

Javascript:style.display =“ none”不起作用,而style.display =“ visible”起作用

当我在CSS中使用:hover时,项目会向上移动(没有javascript)

为什么我的样式没有在React Native中更新?

我的函数没有运行,但是当我在函数外部运行代码时,它可以工作

如何获得style.visibility以使用外部样式表?(仅适用于javascript,没有jQuery)

使用超链接更改style.display

当我尝试使用JavaScript插入html元素时,没有任何改变

操作所有div元素的内容#(使用role =“ tabpanel”)-style =“ display:none;” 显示:块;

当我使用javascript登录时,为什么类和函数中的函数具有不同的表达式?

当我使用window.location.href时,那么我的另一个函数没有调用。

当我在OnClientClick中调用Javascript函数时,为什么我的Javascript函数没有被调用

分配给element.style时,为什么元素的样式没有更改?

为什么当我使用.style.display =“ block”时元素的位置会改变?

当我在函数中使用新的XMLHttpRequest时,将重新加载所有页面

当我使用交叉验证时,元组没有项目

为什么当我使用 SwingWorker 时我的图像没有下载,而当我不使用时却下载?

HSTS:当我没有子域时使用 includeSubdomains

当我调用该函数时,我没有看到任何文本

使用由日期触发的 style.display

当我没有使用 gsub 函数时,R 中的重新编码函数出现奇怪的 gsub 错误

当我使用执行更新的调用函数时,记录没有更新

扑。当我从 Future 函数接收值时,我的 UI 没有更新

当我没有在我的函数中使用它时,为什么我们需要 func.TimerRequest?

当我使用“if 语句”之类的函数时,PyTorch optimizer.step() 不会更新权重

为什么当我通过一个函数调用 axios 时它没有更新?

为什么当我调用这个函数时我的表没有生成?

当我使用 setAttribute 更改属性时,为什么我的自定义组件没有更新?