仅在悬停javascript上更改链接颜色

仅在悬停javascript上更改链接颜色,javascript,html,Javascript,Html,是否可以更改某个项目,将鼠标悬停在另一个项目上 例如: <li> <a href="#">test</a> </li> 如果我将鼠标悬停在li项上,我希望a标记中的文本发生更改,但此代码不起作用 我不能使用css或jquery库 这可以通过一些简单的HTML事件属性和JavaScript来完成 <li> <a href="#" onmouseover="this.style.color='red'" onmouseout="

是否可以更改某个项目,将鼠标悬停在另一个项目上

例如:

<li>
  <a href="#">test</a>
</li>
如果我将鼠标悬停在
li
项上,我希望
a
标记中的文本发生更改,但此代码不起作用

我不能使用css或jquery库


这可以通过一些简单的HTML事件属性和JavaScript来完成

<li>
<a href="#" onmouseover="this.style.color='red'" onmouseout="this.style.color='blue'">test</a>
</li>

  • 如果你想用JS来做,下面是答案。但正如前面所说,你不应该这样做:

    <li id="list">
    <a id="link" href="#">test</a>
    </li>
    
     var list = document.getElementById('list');
     var link = document.getElementById('link');
    
  • var list=document.getElementById('list'); var link=document.getElementById('link');

    假设您无法修改CSS或网页的源代码,并且您只需要一个javascript文件,您希望在其中修改网页的某些功能,那么这种方法将起作用:

    需要注意的是,必须在
    document.getElementsByTagName('li')
    中使用索引,该索引返回一个数组。例如,如果始终需要第一个元素,则可以将此索引硬编码为零。否则,您需要在集合上迭代以查找希望更改的集合

    最后,在找到所需的列表项后,可以修改
    firstChildElement
    的样式。
    var li=document.getElementsByTagName('li')[0];
    li.onmouseover=函数(){
    li.firstElementChild.style.color=“#F00”//红色
    }
    li.onmouseout=函数(){
    li.firstElementChild.style.color=“#000”//黑色
    };
    

  • 您的代码查找具有ID的元素,而您没有ID。您需要通过标记名选择它们,并在集合上循环。然后你需要找到收藏中的锚

    var menu=document.getElementById(“菜单”);
    var lis=menu.getElementsByTagName(“li”);
    对于(变量i=0;i
      • var nodesArray=document.getElementById('myID').getElementsByTagName('a');
        对于(变量i=0;i

        您可能会在这个链接中找到解决方案:-

        为什么不能使用CSS?另外,我建议使用事件监听器。它们不是
        id
        s,而是元素类型。如果JavaScript不起作用,那么第一个办法就是用谷歌搜索你正在使用的方法,找出它不起作用的原因。CSS更短更快,请阅读
        :hover
        选择器。如果确实需要,可以在节点上切换类。
        getElementByTagName
        不存在。函数名在其中间有<代码> s>代码>。您可以使用.
        var link=document.getElementsByTagName('a')[0]但这将获得所有锚定标记。而
        onmouseover
        将改变颜色。但它不会变回来。所以你也得把那些部分弄清楚,这很酷。我不知道你能在这样的表格里插入规则。
        <li id="list">
        <a id="link" href="#">test</a>
        </li>
        
         var list = document.getElementById('list');
         var link = document.getElementById('link');
        
        var nodesArray = document.getElementById('myID').getElementsByTagName('a');
        for (var i = 0; i < nodesArray.length; i++) {
            nodesArray[i].style.color = 'red';
        }