Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.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 尝试使用JS动态显示隐藏在样式表中的元素_Javascript_Css - Fatal编程技术网

Javascript 尝试使用JS动态显示隐藏在样式表中的元素

Javascript 尝试使用JS动态显示隐藏在样式表中的元素,javascript,css,Javascript,Css,我正在用JS编写一个纸牌游戏,它使用onclick事件来决定谁先走。我试图隐藏所有其他元素(包含在2个div中),直到发生这种情况 我尝试在CSS中将这些div设置为display:none,然后在Javascript中使用x.style.display='block'使它们可见: 让firstgoselected=0; 函数hideShow(){ 设div1=document.getElementById('divvy1'); 设div2=document.getElementById('d

我正在用JS编写一个纸牌游戏,它使用onclick事件来决定谁先走。我试图隐藏所有其他元素(包含在2个div中),直到发生这种情况

我尝试在CSS中将这些div设置为
display:none
,然后在Javascript中使用
x.style.display='block'
使它们可见:

让firstgoselected=0;
函数hideShow(){
设div1=document.getElementById('divvy1');
设div2=document.getElementById('divvy2');
如果(第一次选择===1){
div1.style.display='block';
div2.style.display='block';
}

}
您试图使用css类名作为id,这是不起作用的。您可以通过添加id来解决此问题


继续使用getElementById(),或者您可以稍微不同地研究使用哪些函数,但看起来更像是您试图实现的功能。

要获得预期的结果,请使用getElementsByClassName,就像您使用类和尝试使用document.getElementById一样

document.getElementsByClassName返回具有匹配类名的元素数组,即divvy1和divvy2,因为[0]首先选择一个元素

let div1 = document.getElementsByClassName('divvy1')[0];
let div2 = document.getElementsByClassName('divvy2')[0];


选项2是将类更改为ids,并使用相同的javascript代码使其工作

我很确定您可以通过以下方式轻松做到这一点:

document.querySelectorAll(‘.thoseElements:nth-child(even)’)
  .forEach(function (el) {
    el.style.display = ‘none’;
  });

看看javascript控制台,你有一个错误,然后看看你的元素,你没有使用id,你使用了classGood spot,非常感谢。作为后续问题,类和id使用相同的名称是要避免的吗?是的,因此您的类通常会应用于多个元素,而id只特定于一个元素