悬停时的JavaScript执行元素特有的操作

悬停时的JavaScript执行元素特有的操作,javascript,html,css,Javascript,Html,Css,我正在尝试为我的站点创建一个基本的JS文件,这就是它需要做的。我需要它挑出所有类名为“program”的div,并根据悬停在哪个“program”上,执行该元素特有的操作。这是可能的,还是我必须进入一个更具体的步骤,并针对唯一ID或数据属性 到目前为止,我唯一知道的是: var programs = document.getElementsByClassName('program'); 这是为了获得DOM中出现的所有“程序”的“类似数组”列表。然后我想有一个悬停函数,根据悬停在哪个“程序”上,

我正在尝试为我的站点创建一个基本的JS文件,这就是它需要做的。我需要它挑出所有类名为“program”的div,并根据悬停在哪个“program”上,执行该元素特有的操作。这是可能的,还是我必须进入一个更具体的步骤,并针对唯一ID或数据属性

到目前为止,我唯一知道的是:

var programs = document.getElementsByClassName('program');
这是为了获得DOM中出现的所有“程序”的“类似数组”列表。然后我想有一个悬停函数,根据悬停在哪个“程序”上,程序[0]、程序[1]、程序[2]或程序[3]执行特定的操作

请不要用jQuery

使用.querySelectorAll-

或者使用getElementsByTagName+traversal(建议仅使用polyfill)的老式方法

当“program”元素悬停时,您可以使用来执行一些javascript

var programs = document.getElementsByClassName('program');
for(var ctr = 0; ctr<programs.length; ctr++)
{
    programs[ctr].onmouseover=function(sender){
        //some action on hover here
        alert("id of element hovered: " + sender.target.id);
    };
}
var programs=document.getElementsByClassName('program');

对于(var ctr=0;ctr),可能有很多方法可以做到这一点,但您可以使用EventListener来实现这一点

这是如何做到的:

var x=0;//global variable

    document.addEventListener('DOMContentLoaded',function(){    
    var programs = document.getElementsByClassName('program');

        for(var i=0;i<programs.length;i++){
            programs[i].addEventListener('click',someFtn);
            x=i;
        }

        function someFtn(event){
           console.log(this.id); //it will give you the ID of clicked program
           console.log(x);  // tells which 'i' it was
        }
    });
var x=0;//全局变量
document.addEventListener('DOMContentLoaded',function(){
var programs=document.getElementsByClassName('program');

对于(var i=0;iMouseOver for DOM元素,Javascript支持使用可直接附加到DOM元素的事件处理程序

首先使用document.getElementsByClassName功能:

其次,附加到MouseOver功能的每个项目:

或者,如果CSS在本质上具有风格,它也可以使用:hover来处理鼠标悬停 参考:


祝你好运!

你如何辨别你需要采取什么行动?如果你知道程序[0]需要某种行动,你可以硬编码程序[0]。onmouseover来执行一些预期的行动,但这不是很容易扩展。也许如果你提供更多的上下文,我们可以更好地回答这个问题。也许这有助于:“如何为html类添加事件侦听器?"不是被否决的选民,但是w3schools的链接在这里通常是不受欢迎的。嗯?我不知道,知道为什么吗?W3Stools的家伙到处都是……但是W3Stools不再是@koolaide了。没关系,只是有些人不喜欢那个网站,他们打算抵制那个网站,而糟糕的是他们强迫别人这么做。@RPM为什么w3schools不好?Excellent谢谢。但是在someFtn函数中,我可以记录与我单击的特定项目对应的数字I吗?比如console.log(this./which I is here/);我很高兴它对您有效。请将其标记为已接受,以便其他人可以从中获得帮助。我已相应地编辑了代码,请检查并告知我。