css 无法更改样式:使用getelementby类名显示

j8ag8udp  于 2023-01-14  发布在  其他
关注(0)|答案(8)|浏览(250)
document.getElementByClassName('xyz').style.display = 'none';

我无法隐藏课程内容。

vh0rcniy

vh0rcniy1#

document.getElementsByClassName返回一个类似数组对象。您可以使用以下脚本

document.getElementsByClassName('xyz')[0].style.display = 'none';

或者如果要隐藏所有.xyz元素

var x = document.getElementsByClassName("xyz");
var i;
for (i = 0; i < x.length; i++) {
    x[i].style.display = 'none';
}
nwlls2ji

nwlls2ji2#

function show(){
var element = document.getElementsByClassName('elem');
console.log(element);
element[0].style.display = 'block';
}
.elem {
  display: none;
}
<div> visible
  <div class="elem">hidden
  </div>
  <button type="button" onclick="show()">click</button>
</div>

getElementsByClassName返回一个数组,不能像它那样直接设置元素的样式。

w3nuxt5m

w3nuxt5m3#

您需要执行以下操作:let elem = document.getElementsByClassName('xyz')[0];
elem.style.display = 'none';

ojsjcaue

ojsjcaue4#

$("#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';
                }
            }
     });
alen0pnh

alen0pnh5#

工作版本

hide = function(){
document.getElementsByClassName('xyz')[0].style.display="none";
}
<input class="xyz" type="text"/>

<button onclick="hide();">Click to hide!</button>
holgip5t

holgip5t6#

document.getElementsByClassName元素是找到的元素的活动HTML集合。

<div class="xyz">

test content
</div>
<button  type="button" onclick="document.getElementsByClassName('xyz')[0].style.display = 'none';">Hide Content </button>
<button  type="button" onclick="document.getElementsByClassName('xyz')[0].style.display = '';">Show Content </button>
uubf1zoe

uubf1zoe7#

如果你真的想这样做,那么当然首先你需要正确拼写getElementsByClassName;你在控制台里看到这个错误了,对吧?那么,你需要知道getElementsByClassName返回一个类似数组的东西;你在文档里看到过,对吧?,所以你必须循环遍历它,或者用[0]取第一个元素,或者其他什么。
但一般来说,像这样从DOM中检索元素并直接设置它们的样式是不好的做法。相反,利用CSS,它将为您完成90%的工作。在这里,我将使用一个控制行为的高级类,并设置它:

<main id="main">
  <div class="xyz"></div>
<main>

然后将CSS编写为

main.hide-xyz .xyz { display: none; }

要隐藏xyz元素,需要一个JS语句:

document.getElementById("main").classList.add("hide-xyz");

要删除它:

document.getElementById("main").classList.remove("hide-xyz");

或切换:

document.getElementById("main").classList.toggle("hide-xyz");

一旦你理解了这种风格,你会发现自己编写的JavaScript要少得多,不需要进行各种DOM查找、循环和样式设置。

vql8enpb

vql8enpb8#

document.getElementsByClassName始终返回数组,如对象。指定**数组[0]**编号。

** typescript **

let hiddenLocales = document.getElementsByClassName('localeMatch') as HTMLCollectionOf<HTMLElement>;
let hideParentNode = hiddenLocales[0]?.parentElement;
hideParentNode?.remove(); // Remove the element
hideParentNode?.style.display = "none"; // Hide the element

相关问题