0

我正在尝试做三件事onclick

  1. 具有id="notes_content"更改display:none为的元素display: block
  2. 具有id="oct"更改width = "1190px"为的元素width = "550px"
  3. class="oct_days"变化width = "168px"的元素width = "73px"

完整代码的小提琴:http: //jsfiddle.net/ascottz/jX3wh/

前两个发生,但第三个没有。我怀疑这是一个语法错误,但我自己无法捕捉到。

4

3 回答 3

1

getElementsByClassName返回一个 dom 元素数组,它不是单个实例。您必须遍历数组并设置每个元素的样式。

看看更新的小提琴。

for( var i = 0; i < days.length; i++ ){
    days[i].style.width = "73px";        
}

http://jsfiddle.net/jX3wh/4/

于 2013-10-09T21:39:46.113 回答
0

document.getElementsByClassName返回一些元素数组,因此您不能简单地将其称为 DOM 元素,希望它能够在您引用集合的每个元素时起作用(这在 jQuery 中是可能的,顺便说一句),因此您必须使用 foreach循环(不管你将如何实现这一点——通过简单for()的,或for(x in y),或任何其他方式)。

我通常使用Array.forEach函数,但是返回的数组的特定类型document.getElementsByClassName在原型中没有这样的函数,所以你必须使用[].forEach.call(inWhat,function(what){})语法,或者回退到for(...)语法。

看看这个: http: //jsfiddle.net/jX3wh/1/ 不知道它是否有效。

于 2013-10-09T21:41:37.607 回答
0

还有,这是什么鬼???

<div onclick="javascript:showDiv();" class="oct_days">

我真的很惊讶这个作品。我认为你应该改用onclick="showDiv()"

有人,请告诉我它是如何工作的!

于 2013-10-09T21:45:49.300 回答