alert表示で計算結果がうまく作動しません。
全問正解しても『0』と表示されてしまいます。
for文がうまくいっていないのだと思いますが
どう解決していいのか、まったく解りません。
おわかりになる方がいらっしゃいましたら教えて下さい。
<script language="JavaScript">
<!--
function func() {
$A = new Array(6);
$A[1] = "n";
$A[2] = "n";
$A[3] = "n";
$A[4] = "n";
$A[5] = "n";
var $q_no;
var $i_end;

var $i = parseFloat($i);
var $ans= parseFloat("0");
$i_end = parseFloat($q_no);
$i_end = $i_end + 1;
for($i; $i < $i_end; $i++){
if ($A[$i] == document.Frm_Q.Q[$i].value){
$ans= $ans + 10;
}
}
alert($ans);
}
// -->
</script>
<form name="Frm_Q">
<input type="radio" name="Q[1]" value="Y">はい<input type="radio" name="Q[1]" value="n">いいえ<br>###Q5まで続く###
<input type="button" value=" 採 点 " onClick="func()">
<input type="reset" value="リセット">

</form>

このQ&Aに関連する最新のQ&A

A 回答 (1件)

こんばんは。


for文がうまくいってないとのことですが、問題は初期化されていない変数にあります。
この例だと
  $q_no
  $i_end
  $i
が初期化されていないので、NaNというでたらめな値が入っています。
これは、適当なところでalert($q_no)などとしてみればわかります。
NaNに1を足してもNaNなので、for文の条件はNaNとNaNの比較になり
結果としてfor文の中へは入りません。

また、for文の中に入っても、Qという配列は定義されていないため、
ここでも望む結果が得られません。

以上のことをふまえて、関数部分だけ書き換えてみました。
($は不要なので書いてません)
不明な点はがんばって調べてください。
また、alert関数を使えば変数の値が見られるので、最初のうちは各行ごとに
変数の値をチェックしてもいいかもしれませんね。

function func()
{
$A = new Array(6);
$A[1] = "n";
$A[2] = "n";
$A[3] = "n";
$A[4] = "n";
$A[5] = "n";
var q_no = 5;
var i_end;

var i = 1;
var ans = 0;
i_end = q_no;
i_end = i_end + 1;
var btn_name = "";
var reply = "";
for(i=1; i < i_end; i++)
{
btn_name = "Q["+i+"]";
if(document.Frm_Q[btn_name][0].checked)
reply = "Y";
else
reply = "n";
if ($A[i] == reply)
{
ans= ans + 10;
}
}
alert(ans);
}
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QCSSとJavascript(jQuery)の使い分け方

こんにちは。
CSS、Javascript(jQuery含む)を覚えたての初心者です。

CSSファイルはHTMLの装飾、JavaScriptはHTMLで作ったページに「動き」をもった内容を表示できます。
しかし、Javascriptファイルでは、jQueryファイルと一緒に使い、例えば
$("function(){});").css("color","red"); などを使うことで
CSSファイルと同じように、文字を大きくしたり背景に色をつけたりすることができます。

これでは極論を言ってしまえば、$("function(){});").css("color","red");  をつかった.jsファイルを作りこむことでCSSが不要になってしまいます。しかし、CSSはどのウェブページでも必ず使われているものです。

JavaScript(とjQuery)を使ってホームページを作っている方は、
CSSとJavaScript(とjQuery)との使い分けを どのようにしているのでしょうか?

宜しくお願い致しますm(_ _)m

こんにちは。
CSS、Javascript(jQuery含む)を覚えたての初心者です。

CSSファイルはHTMLの装飾、JavaScriptはHTMLで作ったページに「動き」をもった内容を表示できます。
しかし、Javascriptファイルでは、jQueryファイルと一緒に使い、例えば
$("function(){});").css("color","red"); などを使うことで
CSSファイルと同じように、文字を大きくしたり背景に色をつけたりすることができます。

これでは極論を言ってしまえば、$("function(){});").css("color","red");  をつかった.jsファイルを作り...続きを読む

Aベストアンサー

CSS と JavaScript の使い分けはあなた自身が答えを書いてるじゃないですか、
> CSSファイルはHTMLの装飾、JavaScriptはHTMLで作ったページに「動き」をもった内容を表示
と。

確かに JavaScript で CSS を操作することは可能です。しかしそれは JavaScript での何らかの処理の結果をユーザーに通知するためのもので、処理によって変化しない箇所や初期状態の装飾を設定するものではありません(ただし初期状態としての要素の不可視化は例外:JavaScript を切った状態では不可視な要素へのアクセスができなくなるため)。

また、実際の表示の際 JavaScript で装飾を行うと、まずブラウザのデフォルトの装飾がページに施され、そののちに JavaScript による装飾変更が行われるため二度手間になります。それに対して CSS による装飾を行うと、ブラウザのデフォルトの装飾方法を CSS が修正してそれをページに適用するだけで済みます。

Qvar $i = hoge; $の意味について

初心者の質問ですみませんが教えて下さい。
jqueryのソースで以下のソースがあったのですが、
var i = ではなくvar $i にしないといけない理由ってありますか?

var $i = $( '#img' ); // 対象の img タグを選択
var img = new Image();
img.src = $i.attr('src');

Aベストアンサー

こんにちは。

$iにしなくてはいけない理由はないと思います。

多分$('#img')でjQueryのオブジェクトを取得してるので$をつけているんだと思います。
(私もjQueryで取得した要素については$を付けるようにしています)
ようするにわかりやすいようにです。

QCSSやJavaScriptのバージョン指定

HTMLを書くときにCSSやJavaScriptのバージョン指定は必要なのでしょうか。
各ブラウザのバージョンによって対応するCSS・JavaScriptのバージョンが決まっていると思うのですが、例えば、CSS3やJavaScript2がでてきたときに、バージョン指定していないWebページで表示が壊れる等ないのでしょうか。

現在CSS2.1で書かれたページもいつかは、CSS2.1対応のブラウザがなくなり見れなくなります。
ただ、近々CSS3がでたときにバージョン指定していないため、ブラウザ側でCSS3で表示しようとし、見れなくなる等あるのでしょうか。

ご回答いただければ幸いです。

Aベストアンサー

今でもCSSやJavaScriptのバージョン指定はしてませんよね。
特に指定しなくてもブラウザがそれらに対応してればそのように表示するし、
対応してなければ意図した表示にならない可能性は高いでしょう。
例えそれが新しいCSS3だからといってもバージョンこそ違えどCSSに変わりはないので同じです。
逆にブラウザの方のバージョン指定が必要になってくるかも ^^;

Qで、Q1に後で値を設定して表示するには

お世話になります。
<input type="text" name="Q1">で、Q1に後で値を設定して表示するにはどうしたら良いものでしょうか。
name="Q1"
と、しているので、
onMousedown="function()"
で、nameでしてしたエリアに値を書き込めば、できると思うのですが、
このfunction()をどのように書いたらよいものか、いろいろ調べてもわかりません。
何とかご教示願えないでしょうか。
よろしくお願いします。

Aベストアンサー

javascriptを利用することで出来ます。
こんな感じで動くでしょう。
ちなみにテキストボックスなどをjavascriptで操作する場合は
idをつけておくと便利です。

これ以上をやりたいというのであれば
参考URLなど見て勉強してみてください
<html>
<head>

</head>
<body>

<input type="text" id="Q1" name="Q1" onmousedown="hoge()">
</body>
<script type='text/javascript'>
function hoge()
{
Q1.value = ""; //""のなかに設定する値
}
</script>

参考URL:http://www.parkcity.ne.jp/~chaichan/src/javasc21.htm

Qcssにjavascriptを入れる?呼び出す??

技量が乏しいので見当違いな質問でしたらすいません。

今ホームページにjavascriptによるログ解析を行うためhtmlファイルにタグを挿入しているのですが、すべての該当ページに挿入するのに苦労しています。
これをcssを使う事でcssだけ変更すればすべてのファイルにjavascriptを追加するような事はできませんでしょうか。
cssの記述方法についてご教授頂ければありがたいです。


cssやjavascriptそれぞれ1つとっても私には難しく・・・
よろしくお願いいたします。

Aベストアンサー

cssでスクリプトの読みこみはできませんが、
cssをうめこむ手順に近い形でjavascriptの
うめこみをすればよいのでは?

<script type="text/javascript" src="hoge.js"></script>

とし、hoge.jsを書きかえれば全てのページの
スクリプトが変わります。

Q&= ~0x0c; &= ~0x03; |=1;

JavaScriptで分からないコードがあるので教えてください。


■変数設定
var hoge = 0;


■変数格納
・キーを押した時の条件分岐
  ~なら hoge |= 1;
  または hoge |= 2;
  または hoge |= 3;
  または hoge |= 8;

・キーを離した時の条件分岐
  ~なら hoge &= ~0x0c;
  または hoge &= ~0x03;


■変数使用
・swithch文の条件分岐に利用
  (hoge&0x03)
  (hoge&0x0c)


■質問
・どういう意味でしょうか?
・文字コード?
・ビット演算?

Aベストアンサー

ビット演算してるわね

x = x + a

x += a
って書くことができるの

つまり
hoge |= 1

hoge = hoge | 1
のことね

~はNOTのこと

0x
はアスキーコードの16進数表記ねきっと

0x0c は改ページを意味していて
0x03 は文章の最後を意味している
と思われるわ
全文がないので推測だけど

Q時間帯によって背景を切り替えるJavascriptとCSS

時間帯によって背景を切り替えるJavascriptとCSSを作りたいのですが以下の書き方で良いのでしょうか?切り替わるには切り替わるのですが、時間の指定がうまくいってないようです。。

また下の3行はJavascriptをOFFにしているときはこのCSSという意味で良いですか?

<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
function getCSS()
{
datetoday = new Date();
timenow=datetoday.getTime();
datetoday.setTime(timenow);
thehour = datetoday.getHours();

if (thehour > 20)
display = "includes/tree_twilight.css";
else if (thehour > 17)
display = "includes/tree_sunset.css";
else if (thehour > 14)
display = "includes/tree_afternoon.css";
else if (thehour > 11)
display = "includes/tree_noon.css";
else if (thehour > 7)
display = "includes/tree_morning.css";
else if (thehour > 4)
display = "includes/tree_sunrise.css";
else if (thehour > 1)
display = "includes/tree_twilight.css";
else
display = "includes/tree_sunset.css";

var css = '<';
css+='link rel="stylesheet" href=' + display + ' \/';
css+='>';

document.write(css);
// End -->
}
</script>

<script language="javascript">getCSS();</script>

<noscript>
<link rel="stylesheet" href="includes/tree_sunset.css" type="text/css"/>
</noscript>


宜しくお願いします。。

時間帯によって背景を切り替えるJavascriptとCSSを作りたいのですが以下の書き方で良いのでしょうか?切り替わるには切り替わるのですが、時間の指定がうまくいってないようです。。

また下の3行はJavascriptをOFFにしているときはこのCSSという意味で良いですか?

<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
function getCSS()
{
datetoday = new Date();
timenow=datetoday.getTime();
datetoday.setTime(timenow);
thehour = datetoday.getHours();

if (thehour > 20)
display = "includes/t...続きを読む

Aベストアンサー

★『>』と『>=』演算子の使い方は、次のようになります。

サンプル1:
if ( thehour > 17 ){
 18~23時
}
else if ( thehour > 11 ){
 12~17時
}
else if ( thehour > 5 ){
 6~11時
}
else{
 0~5時
}

サンプル2:
if ( thehour >= 18 ){
 18~23時
}
else if ( thehour >= 12 ){
 12~17時
}
else if ( thehour >= 6 ){
 6~11時
}
else{
 0~5時
}

解説:
・『>』演算子よりも『>=』演算子の方が分かりやすいというのは if の
 ブロック内の最初が『比較時間~』という解釈が出来るからです。
 どちらでも処理的には同じですので最終的に『お好み』ですよ。
 これで分かりましたか?
・以上。→私は『サンプル2』の方が分かりやすいと思った。でアドバイスしたの。

Qinput type="file"のvalue監視

input="file"のvalue値が変更されたら別のテキストフィールドに表示するというScriptを書いたのですが動作してくれません。
input="file"ではなく普通のテキストフィールドならば動作します。
fileフィールドでは動作しないのでしょうか。それとも書き方がまずいのでしょうか。

以下、ソースです。

<html>
<head>
<title>test</title>
<script type="text/javascript" src="/javascript/prototype.js"></script>
</head>
<body>
<form action="" enctype="multipart/form-data" method="post">
<input id="file_test" name="file_test" type="file">
<br>
<div id="result">表示</div>
<script type="text/javascript"><!--
window.onload = function() {
new Form.Element.Observer('file_test', 1, function(element, value) {
document.getElementById('result').innerHTML = value;
});
}
//--></script>
</form>
</body>
</html>


よろしくお願いします。

input="file"のvalue値が変更されたら別のテキストフィールドに表示するというScriptを書いたのですが動作してくれません。
input="file"ではなく普通のテキストフィールドならば動作します。
fileフィールドでは動作しないのでしょうか。それとも書き方がまずいのでしょうか。

以下、ソースです。

<html>
<head>
<title>test</title>
<script type="text/javascript" src="/javascript/prototype.js"></script>
</head>
<body>
<form action="" enctype="multipart/form-data" method="post">
...続きを読む

Aベストアンサー

type="file"は、ブラウザごとに特にセキュリティが厳しいので
基本的にはなにもできないと認識しておいた方がよいでしょう。

Q【HTML&JavaScript】JavaScriptでのCSSの操作

【HTML&JavaScript】JavaScriptでのCSSの操作
みなさんはじめまして、kimama8と申します。
今回は、JavaScriptによるCSSの操作について聞きたいことがありましたので、
質問させていただきます。

div要素のCSSプロパティの一つ、visibilityプロパティをJavaScriptから操作するには、
どのようにすればよいのでしょうか?
「CSS JavaScript 操作」などと検索にかけても、自分に合う情報が得られなかったので
ここで質問させていただきます。
忙しいとは思いますが、よろしくお願いします。

Aベストアンサー

「JavaScript CSS visibility」で検索すると色々出てきましたよ。

http://javascript123.seesaa.net/article/103571862.html
これが判りやすいかな。

Qdocument.writeをinput type="text"の value値に

超初心者です。
下記の式にてPHPよりjavascriptにてHTMLに書き出しできましたが
<script type="text/javascript" src="./jsphptest.php?long=3" ></script>この値をHTMLのinput type="text"の value値にデフォルトとして入れたいと思っていますが、どうすればできるのか分かりません。できればボタン等を介さずページをロードすればこPHPからjavascriptのdocument.write値がvalue値に入って欲しいと思っています。簡単なようで難しいことなのでしょうか?どうかご教授よろしくお願いいたします。

Aベストアンサー

それからどうでもいいけど
htmlのタグの順番が適当ですね。


人気Q&Aランキング