Javascript Can';t选定的颜色<;a>;标签

Javascript Can';t选定的颜色<;a>;标签,javascript,html,nodelist,Javascript,Html,Nodelist,我正在开发一个完整的javascript菜单 我正在尝试根据用户的偏移量更改或项的颜色。问我这是否可以理解 菜单 var menu = document.getElementById('header'); var work = document.getElementById('work'); var who = document.getElementById('who'); var contact = document.getElementById('contact'); var offsetW

我正在开发一个完整的javascript菜单

我正在尝试根据用户的偏移量更改
  • 项的颜色。问我这是否可以理解

    菜单

    var menu = document.getElementById('header');
    var work = document.getElementById('work');
    var who = document.getElementById('who');
    var contact = document.getElementById('contact');
    var offsetWork = work.offsetTop - 60;
    var offsetWho = who.offsetTop - 60;
    var offsetContact = contact.offsetTop - 60;
    var ul = document.getElementsByTagName('ul')[0];
    var li = ul.getElementsByTagName('li');
    
    setInterval(function(){
        var ul = document.getElementsByTagName('ul')[0];
        var li = ul.getElementsByTagName('li');
    
        if(getCurrPos() >= offsetWork){
            menu.style.display = "block";
        }else if(getCurrPos() <= offsetWork){
            menu.style.display = "none";
        }
    
        if(offsetWork <= getCurrPos() <= offsetWho){
            li[1].style.backgroundColor = '#00a9c6';
            //li[1].getElementsByTagName('a').style.color = '#fff';
        }else {
            li[1].style.backgroundColor = '#fff';
        }
    
        if(offsetWho <= getCurrPos() <= offsetContact){
            li[2].style.backgroundColor = '#00a9c6';
            //li[2].getElementsByTagName('a').style.color = '#fff';
        }else {
            li[2].style.backgroundColor = '#fff';
        }
    
        if(getCurrPos() >= offsetContact){
            li[3].style.backgroundColor = '#00a9c6';
            //li[3].getElementsByTagName('a').style.color = '#fff';
        }else {
            li[3].style.backgroundColor = '#fff';
        }
    
    }, 100);
    
    var menu=document.getElementById('header');
    var work=document.getElementById('work');
    var who=document.getElementById('who');
    var contact=document.getElementById('contact');
    var offsetWork=work.offsetTop-60;
    var offsetWho=who.offsetTop-60;
    var offsetContact=contact.offsetTop-60;
    var ul=document.getElementsByTagName('ul')[0];
    var li=ul.getElementsByTagName('li');
    setInterval(函数(){
    var ul=document.getElementsByTagName('ul')[0];
    var li=ul.getElementsByTagName('li');
    如果(getCurrPos()>=网外){
    menu.style.display=“block”;
    }else if(getCurrPos()使用

    querySelector返回选择器选择的所有元素中的第一个元素


    getElementsByTagName返回与选择器匹配的所有元素的集合,因此无法使用li[2]这样的语法访问该元素。getElementsByTagName('a').style.color

    尝试替换
    。getElementsByTagName('a').style.color='#fff'
    。getElementsByTagName('a')[0].style.color='#fff'
    记住
    getElementsByTagName('a')
    返回一个节点列表对象,表示锚元素的集合。可能重复非常感谢NewToJS,我在li上使用了它,但在a上没有,我的坏啊!谢谢你的提示!我在JS方面很新:)
    li[3].querySelector('a').style.color = '#fff';