javascript - 循环改变部分元素的样式

标签 javascript css ajax

我在布局页面的顶部有这个导航栏:

<div id="myTopnav" class="topnav" style="background-color: #030005; background-image: linear-gradient(#270133,#F5F5F5)">
            <a href="#" class="active ">@Session["UserName"].ToString() @Session["UserApe"].ToString()</a>
            <a href="#">Testing A</a>
            <a href="#">Testenado B</a>
            <a href="/Home/Logout">Cerrar Sesion</a>
            <a href="javascript:void(0);" class="icon" onclick="despMenu()"><i class="fa fa-bars"></i></a>
        </div>

我的想法是在每个按钮上切换渐变 nad ofr,我已经做到了这一点:

window.addEventListener("load",inicializarEventos,false);
function inicializarEventos() {
    var ob1 = document.getElementById("myTopnav");
    var lista = ob1.getElementsByTagName("a");    
    var sw = 1;
    for (var i = 0; i < (lista.length - 1); i++) {
        if (sw == 1) {
            ob1.item(i).style.backgroundImage="linear-gradient(to top ,#270133,#F5F5F5)";            
            sw = 0;
            console.log("Entro a 1")
            break;
        }
        else {
            ob1.item(i).style.backgroundImage = "linear-gradient(to top ,#F5F5F5,#270133)";
            sw = 1;
            console.log("Entro a 2")
             }
      }
}

但是它不起作用。我究竟做错了什么?有更好的方法吗?

最佳答案

您的工作示例应该如下所示:

window.addEventListener("load",inicializarEventos,false);
function inicializarEventos() {
    var ob1 = document.getElementById("myTopnav");
    var lista = ob1.getElementsByTagName("a");    
    var sw = 1;
    for (var i = 0; i  < lista.length; i++) {
        if (sw == 1) {
            lista[i].style.backgroundImage="linear-gradient(to top ,#270133,#F5F5F5)";            
            sw = 0;
            console.log("Entro a 1")
            break;
        }
        else {
            lista[i].style.backgroundImage = "linear-gradient(to top ,#F5F5F5,#270133)";
            sw = 1;
            console.log("Entro a 2")
             }
      }
}

如上所述,您应该使用 lista[i]用于访问您当前的对象,如果没有限制,您还应该检查整个列表 i < lista.length

关于javascript - 循环改变部分元素的样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53415460/

相关文章:

html - 白边位置:fixed even if margin:0 and padding:0

JQuery .ajax() 成功总是触发(即使服务器返回错误代码)

javascript - jquery AJAX Post 不工作 Codeigniter

javascript - jquery多个ajax文件上传循环异步与多个进度条

javascript - HTML5 音频和垃圾收集

javascript - HTML PHP 谷歌单点登录注销将抛出 "Cannot read property ' getAuthInstance' of undefined"

仅 CSS 3D 旋转文本

jquery - 当幻灯片包裹在 float 元素中时,bxslider 没有响应

javascript - 有效地从 DOM 中删除项目

javascript - joomla IE9 云缩放插件扩展上的图像放大器问题