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';
}
}
});