getElementByClassName不返回结果

Rya*_*es8 2 javascript

getElementByClassName()没有返回任何结果,我把它设置为getElementById(),但我不能使用,Id因为相同的功能将需要应用于七个链接.我已经填写了有关jsFiddle的所有信息

javascript看起来像:

var myBoxWidth = 0;
var myBoxWidth2 = 0;

// show
function show() {
    var myBox = document.getElementByClassName('box');  
    var myContent = document.getElementByClassName('content');
    myContent.style.display = 'inline';
    myBox.style.width = myBoxWidth + '%';  
    if(myBoxWidth < 80) {  
        myBoxWidth += 20;
        setTimeout(show,55);
    }
}

// hide
function hide() {
    var myBox = document.getElementByClassName('box');
    var myContent = document.getElementByClassName('content');
    myContent.style.display = 'none';
    var currentWidthVal = parseInt(myBox.style.width,10);
    if(myBoxWidth2 < currentWidthVal) {  
        setTimeout(hide,55);
        myBox.style.width = currentWidthVal =  currentWidthVal - 20 + '%';
        myBoxWidth = 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

Eja*_*jaz 5

没有这样的getElementByClassName().试试getElementsByClassName()

更新

document.getElementsByClassName('..')在编写代码时返回一组元素,期望它将返回单个元素.您可以将该部分更改为

var myContent = document.getElementsByClassName('content');

var num = myContent.length;

for(var x=0; x < num; x++){
    myContent[x].style.display = 'block'; //or whatever style you've in your original code 
}
Run Code Online (Sandbox Code Playgroud)

  • 请注意,`getElementsByClassName()`,如名称中的复数所示,返回元素列表,而不是单个元素.这是因为与ID不同,类不是唯一的. (2认同)