0

私は3つのことをしようとしています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/jX3w/

最初の 2 つは発生しますが、3 番目は発生しません。構文エラーだと思いますが、自分でキャッチできません。

4

3 に答える 3

1

getElementsByClassName単一のインスタンスではなく、dom 要素の配列を返します。配列をループして、各要素のスタイルを設定する必要があります。

更新されたフィドルを見てください。

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

http://jsfiddle.net/jX3w/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/jX3w/1/ 動作するかどうかはわかりません。

于 2013-10-09T21:41:37.607 に答える