- PR -

ループ文について

1
投稿者投稿内容
nabe
常連さん
会議室デビュー日: 2006/04/13
投稿数: 29
投稿日時: 2009-01-29 11:18
非常に簡単なことかもしれませんが、
ループ文の書き方で困っています。
JavaScript初心者なんで、皆さんにご教授して頂く
書き込みさせてもらいました。
何卒よろしくお願い致します。

今、ある画面を開いたときに、呼んでいるJavaScript function名 JS_openがあります。

function JS_open(){

 …
//ループテスト
alert("ループ開始");
for(i=0;i<3;i++){
alert(i);
}
alert("ループ終了");

}

このJS_open の中でループテストを行うと正常に動作しました。
次にこのループをJS_cntというfunctionにしてJS_openから飛ばすように
してみました。
function JS_open(){

 …
//ループテスト
JS_cnt();

}

JS_cnt(){
alert("ループ開始");
for(i=0;i<3;i++){
alert(i);
}
alert("ループ終了");
}

このように記述するとエラーになってしまいます。
i<3;の『<』がタグあつかいされているみたいで対応する閉じる『>』が
ないですみたいなエラーになります。
ちなみに、
JS_cnt内のfor文を削除してalertだけにすれば、正常に動作します。
for文でなくwhile文でも同様なエラーになりました。

一体何故別functionに飛ばしてループ処理ができないのか
わからない状態です。

どうかご教授よろしくお願い致します。
あすか
ぬし
会議室デビュー日: 2006/07/12
投稿数: 309
投稿日時: 2009-01-29 11:48
エラーはどこに出るのですか?
エラーの出る場所とエラーの内容を
もっと詳しく書いてください。
Airo
会議室デビュー日: 2009/01/29
投稿数: 1
お住まい・勤務地: 東京都
投稿日時: 2009-01-29 11:58
JS_cntにfunctionがないような気がしますが・・・。
functionを付けたら正常に動作しましたよ。
nabe
常連さん
会議室デビュー日: 2006/04/13
投稿数: 29
投稿日時: 2009-01-29 12:58
返事ありがとうございます。

エラーは画面上にWebScriptエラーとでます。
後JS_cnt は function定義をしていました。
投稿の入力ミスです。
すみません。

いろいろ試してみた結果、javascript自体の宣言に問題がありそうでした。
<script language="JavaScript">で宣言していなのですが、
<script type="text/javascript">に変更すると
正常に動作するようになりました。

HTMLのバージョンによるみたいなのですが、
何故かはよくわかりませんが。。。
あすか
ぬし
会議室デビュー日: 2006/07/12
投稿数: 309
投稿日時: 2009-01-29 13:03
HTMLのバージョン?
DOCTYPEを記述しているってことでしょうか。
たしかにXHTMLとかになると
language属性はなくなるので
エラーになりますね。
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2009-01-29 13:03
ところでJavaScriptはここで良いんでしょうかね…。

>i<3;の『<』がタグあつかいされているみたいで
<script>タグの中の書き方が正確でないんでは。

<script...>
<!--

// -->
</script>

でも、今時のブラウザなら書かなくても影響ないと思いますが。

[ メッセージ編集済み 編集者: mio 編集日時 2009-01-29 13:05 ]
1

スキルアップ/キャリアアップ(JOB@IT)