Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 按类获取元素,以类名为目标的页面上的所有元素_Javascript_Css_Class_Getelementsbyclassname - Fatal编程技术网

Javascript 按类获取元素,以类名为目标的页面上的所有元素

Javascript 按类获取元素,以类名为目标的页面上的所有元素,javascript,css,class,getelementsbyclassname,Javascript,Css,Class,Getelementsbyclassname,我试图展示管道中的不同项目阶段。当用户将鼠标悬停在管道的每个阶段上时,该阶段内项目上的边框颜色将更改以高亮显示它们。很简单 我似乎无法针对该页面上类中的所有项,它只允许我使用[0]针对其中一项。但我需要它来获取该类中的所有div,而不仅仅是1个。似乎是一个简单的解决办法,但我似乎找不到任何关于这一点 <script> function scanSHOW() { document.getElementsByClassName('scan-item')[0].style

我试图展示管道中的不同项目阶段。当用户将鼠标悬停在管道的每个阶段上时,该阶段内项目上的边框颜色将更改以高亮显示它们。很简单

我似乎无法针对该页面上类中的所有项,它只允许我使用[0]针对其中一项。但我需要它来获取该类中的所有div,而不仅仅是1个。似乎是一个简单的解决办法,但我似乎找不到任何关于这一点

    <script>
function scanSHOW() {

    document.getElementsByClassName('scan-item')[0].style.border="2px #FF0000 solid";}

function scanHIDE() {   

document.getElementsByClassName('scan-item')[0].style.border="2px #666666 solid";}

    </script>


<style>.scan-item {border: 2px #666666 solid;}</style>

函数scanSHOW(){
document.getElementsByClassName('scan-item')[0].style.border=“2px#FF0000 solid”}
函数scanHIDE(){
document.getElementsByClassName('scan-item')[0].style.border=“2px#666666 solid”}
.扫描项目{边框:2px#666666实心;}
HTML:




这正是循环的用途。一个简单的
for
循环依次遍历每个元素就可以实现这一点。比如:

var elements = document.getElementsByClassName('scan-item');
for (var i = 0; i < elements.length; i++) {
    elements[i].style.border="2px #FF0000 solid";
}
var elements=document.getElementsByClassName('scan-item');
对于(var i=0;i
这正是循环的用途。一个简单的
for
循环依次遍历每个元素就可以实现这一点。比如:

var elements = document.getElementsByClassName('scan-item');
for (var i = 0; i < elements.length; i++) {
    elements[i].style.border="2px #FF0000 solid";
}
var elements=document.getElementsByClassName('scan-item');
对于(var i=0;i
我发现最简单的方法是在全身设置一个点击监听器,然后用某个类来监听点击。这样,您就可以遍历单击对象的dom,然后执行所需的任何操作

function clickHandler(e){

e = e || window.event;
const target = e.target || e.srcElement;

    if (target.className.match(/CLASS NAME HERE/)) {
        //do something with the target (traverse up or down - change the element or whatever have you)
        console.log(e.target)
    }

}

if (document.body.addEventListener){
document.body.addEventListener('click', clickHandler, false);
}

Ps!如果您执行for循环,那么我通常会在稍后遇到问题。这是最可靠的(至少对我来说是如此)。

我发现最简单的方法是在全身设置一个单击侦听器,然后使用某个类侦听单击。这样,您就可以遍历单击对象的dom,然后执行所需的任何操作

function clickHandler(e){

e = e || window.event;
const target = e.target || e.srcElement;

    if (target.className.match(/CLASS NAME HERE/)) {
        //do something with the target (traverse up or down - change the element or whatever have you)
        console.log(e.target)
    }

}

if (document.body.addEventListener){
document.body.addEventListener('click', clickHandler, false);
}

Ps!如果您执行for循环,那么我通常会在以后遇到问题,这是最可靠的(至少对我而言)。

请解释一下?看起来用户对信息的处理能力比直接的代码修复能力更强。@VoteyDisciple谢谢你,muck工作得很完美,谢谢你的及时回复!一旦时间流逝,我会接受你的答复。这是一个循环,我不知道;我不知道为什么我没有想到要使用它,因为“getelementbyclass”非常简单,我认为我的格式设置是关闭的。谢谢大家!!再解释一下?看起来用户对信息的处理能力比直接的代码修复能力更强。@VoteyDisciple谢谢你,muck工作得很完美,谢谢你的及时回复!一旦时间流逝,我会接受你的答复。这是一个循环,我不知道;我不知道为什么我没有想到要使用它,因为“getelementbyclass”非常简单,我认为我的格式设置是关闭的。谢谢大家!!