Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.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 Can';t更改样式:使用getelementbyclassname显示_Javascript_Html_Css - Fatal编程技术网

Javascript Can';t更改样式:使用getelementbyclassname显示

Javascript Can';t更改样式:使用getelementbyclassname显示,javascript,html,css,Javascript,Html,Css,我无法隐藏课堂内容。 函数显示(){ var元素=document.getElementsByClassName('elem'); 控制台日志(元素); 元素[0]。style.display='block'; } .elem{ 显示:无; } 可见 隐藏的 点击 document.getElementsByCassName返回类似数组的对象。您可以为此使用以下脚本 document.getElementByClassName('xyz').style.display = 'none'; 或者

我无法隐藏课堂内容。

函数显示(){
var元素=document.getElementsByClassName('elem');
控制台日志(元素);
元素[0]。style.display='block';
}
.elem{
显示:无;
}
可见
隐藏的
点击

document.getElementsByCassName返回类似数组的对象。您可以为此使用以下脚本

document.getElementByClassName('xyz').style.display = 'none';
或者如果要隐藏所有
.xyz
元素

document.getElementsByClassName('xyz')[0].style.display = 'none';
var x=document.getElementsByClassName(“xyz”);
var i;
对于(i=0;i
您需要执行以下操作:
let elem=document.getElementsByClassName('xyz')[0]

elem.style.display='none'

工作版本

hide=function(){
document.getElementsByClassName('xyz')[0].style.display=“无”;
}

点击隐藏元素是找到的元素的实时HTMLCollection


测试内容
隐藏内容

显示内容
如果你真的想这样做,那么当然首先你需要正确拼写
getElementsByClassName
;您在控制台中看到了这个错误,对吗?然后,您需要知道
getElementsByClassName
返回一个类似数组的东西;你在文档中看到了,对吗?因此,您必须在它上面循环,或者使用
[0]
或其他方法获取第一个元素

但一般来说,像这样从DOM中检索元素并直接设置它们的样式是不好的做法。相反,利用CSS,它将为您完成90%的工作。在这里,我将使用一个更高级别的类来控制行为,并将其设置为:

var x = document.getElementsByClassName("xyz");
var i;
for (i = 0; i < x.length; i++) {
    x[i].style.display = 'none';
}
要隐藏
xyz
元素,则需要一条JS语句:

main.hide-xyz .xyz { display: none; }
要删除它,请执行以下操作:

document.getElementById("main").classList.add("hide-xyz");
或者切换它:

document.getElementById("main").classList.remove("hide-xyz");
一旦你对这种风格了如指掌,你会发现自己编写的JavaScript要少得多,它需要各种DOM查找、循环和样式设置。

$(“#afficher_commentaire”).change(function(){
document.getElementById("main").classList.toggle("hide-xyz");
//警报(“正常”); if($(this).prop(“选中”)==true){ var commentaire_date_fin_fourniture=document.getElementsByClassName(“commentaire_date_fin_fourniture”); 对于(var i=0;i
使用
getElementsByClassName
您将获得
HTMLCollection
因此请尝试
document.getElementsByClassName('xyz')[0]。style.display='none'下次按F12并读取控制台日志。它应该指出您在那里犯的至少一个错误。您是否有一个或多个类为
xyz
的元素?仅在您有一个可以链接到的id的情况下有效,如果仅使用类,这将不起作用(例如在ng重复中)
document.getElementById("main").classList.toggle("hide-xyz");
    $("#afficher_commentaire").change(function(){ 
        // alert("OK");
            if($(this).prop("checked") == true){
              var commentaire_date_fin_fourniture = document.getElementsByClassName("commentaire_date_fin_fourniture");
              for (var i = 0; i < commentaire_date_fin_fourniture.length; i++) { 
                  commentaire_date_fin_fourniture[i].style.display='block';
                  }
            }
            else if($(this).prop("checked") == false){
              var commentaire_date_fin_fourniture = document.getElementsByClassName("commentaire_date_fin_fourniture");
            for (var i = 0; i < commentaire_date_fin_fourniture.length; i++) { 
                commentaire_date_fin_fourniture[i].style.display='none';
                }
            }
     });