Javascript更改div onclick的宽度

时间:2013-10-09 21:33:30

标签: javascript html onclick

我正在尝试做三件事onclick

  1. id="notes_content"的元素更改为display:nonedisplay: block
  2. id="oct"的元素更改为width = "1190px"width = "550px"
  3. class="oct_days"的元素更改为width = "168px"width = "73px"
  4. 完整代码的小提琴:http://jsfiddle.net/ascottz/jX3wh/

    前两个发生,但第三个没发生。我怀疑这是一个语法错误,但我自己无法抓住它。

3 个答案:

答案 0 :(得分:1)

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

看看更新的小提琴。

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

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

答案 1 :(得分:0)

document.getElementsByClassName稍微返回一个元素数组,所以你不能简单地将它称为DOM元素,希望它能够在你引用集合的每个元素时起作用(这在jQuery,btw中是可能的) ,所以你必须使用foreach循环(无论你怎么做到这一点 - 通过简单for(),或for(x in y),或任何其他方式)。

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

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

答案 2 :(得分:0)

此外,这是什么?

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

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

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