我的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;
}
}
答案 0 :(得分: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
}
答案 1 :(得分:0)
它是getElementsByClassName而不是getElementByClassName。我还建议使用jQuery或某种js框架。