JavaScript 演習2
1
本日の内容
•
•
•
•
•
•
•
•
演習問題1の解答例
前回の続き
document.getElementById関数
演習問題4
イベント処理
基本的なフォーム
テキストボックスの入力値の取得
演習問題5
演習問題1
• promptメソッドとdocument.writeメソッドを用
いて,ユーザから入力されたテキストと文字の
色に応じて,表示内容を変化させるJavaScript
プログラムを書きなさい
3
演習問題1の解答例
解答例1:style属性の値をダブルクォートで囲む場合
var text = prompt("テキストを入力してください");
var textColor = prompt("文字の色を入力してください");
document.write('<h1 style="color: ' + textColor + ';">' + text + '</h1>');
解答例2:style属性の値をシングルクォートで囲む場合
var text = prompt("テキストを入力してください");
var textColor = prompt("文字の色を入力してください");
document.write("<h1 style='color: " + textColor + ";'>" + text + '</h1>');
解答例3:style属性の値をダブルクォートで囲む場合(エスケープを利用)
var text = prompt("テキストを入力してください");
var textColor = prompt("文字の色を入力してください");
document.write("<h1 style=\"color: " + textColor + ";\">" + text + '</h1>');
4
演習問題1でよくある誤り
var text = prompt("テキストを入力してください");
var textColor = prompt("文字の色を入力してください");
document.write("<h1 style="color: textColor;">" + text + "</h1>");
緑の文字列を書きだそうとしてしまう.
JavaScript上の文字列とstyle属性値が混在している.
var text = prompt("テキストを入力してください");
var textColor = prompt("文字の色を入力してください");
document.write('<h1 style="color: textColor;">' + text + "</h1>");
「textColor」という色で出力することになる.
textColor変数に格納された文字列に展開されない.
5
document.getElementById関数
• document.getElementById(引数)
– 引数で指定した要素オブジェクトを得る
• document.getElementById(引数).textContent
– 引数で指定した要素オブジェクトのテキストを得る
• document.getElementById(引数).innerHTML
– 引数で指定した要素オブジェクトのHTMLを得る
• document.getElementById(引数).style.CSSプ
ロパティ
– 引数で指定した要素オブジェクトのCSSプロパティを得る
– CSSプロパティ名は,基本的には「ハイフン(-)」を除去し
,ハイフンの後の文字を大文字に変換したものを用いる
6
– 参考: http://codepunk.hardwar.org.uk/css2js.htm
オブジェクトのイメージ
<body>
<body>
<h1
<h1
id="id1“
id="id1">Hello</h1>
style=‘color: red’>Hello, World</h1>
</body>
</body>
document.getElementById(“id”)
H1要素のオブジェクト
属性:
色 (style.color): black
HTMLテキスト (innerHTML): Hello
document.getElementById(“id”).style.color = ‘red’;
document.getElementById(“id”).innerHTML = ‘Hello, World’;
document.getElementById関数
ex14.html
JavaScript
function test() {
var h1Value = document.getElementById("id1").innerHTML;
alert(h1Value);
document.getElementById("id1").innerHTML = prompt('');
var item1 = document.getElementById("item1").innerHTML;
alert(item1);
var item2 = document.getElementById("item2").innerHTML;
alert(item2);
var item1 = document.getElementById("item3").innerHTML;
alert(item3);
document.getElementById("divid").innerHTML = "テスト";
document.getElementById("divid").style.color = "red";
document.getElementById("divid").style.fontSize = "200%";
document.getElementById("divid").style.backgroundColor = "black";
}
HTML
onload=‘関数名’
<body onload='test()'>
<h1 id="id1">document.getElementById関数</h1>
ドキュメントが完全に
読み込まれた後に指
定した関数を呼び出す
<ul>
<li id="item1">項目1</li>
<li id="item2">項目2</li>
<li id="item3">項目3</li>
</ul>
<div id="divid"></div>
</body>
divは「division(区画)」の略
他の要素をまとめて,構造化する際に
用いられる
JavaScriptで操作する対象になる
8
演習問題4
• div要素にid属性を指定し,JavaScriptプログラムによ
りdiv要素のCSSプロパティを設定し,以下の正方形
を表示するプログラムを作成せよ
<div style="position: absolute;
top: 100px; left: 100px; width: 100px;
height: 100px; background-color:
lightgray; border: thick solid black;
visibility: visible;"></div>
JavaScript
ヒント
function showRect() {
document.getElementById(“rect”).style.・・・・
document.getElementById(“rect”).style.backgroundColor = “lightgray”;
}
HTML
<body onload=“showRect()”>
<div id=“rect”></div>
</body>
9
イベント処理
• JavaScriptでは、ユーザからの入力があるとWebブラウザがイベントを
生成
– 例えば、キーボードを押したり、マウスを動かしたりクリックしたりするなど
様々な場面でイベントが発生する
あるイベントが発生した際に、そのイベントに対するイベントハンドラを定
義しておけば、インタラクティブなページを作ることが可能
イベントハンドラ
発生契機
サポートするHTML要素
onblur
要素が入力フォーカスを失った時
<button>, <input>, <label>,
<select>, <textarea>,<body>
onchange
入力フォーカスが移された時と要
素の値が変わった時
<input>, <select>, <textarea>
onclick
マウスを一回クリックした時
大半の要素
onmouseover
マウスが要素の上に移動した
大半の要素
onkeydown(up)
ユーザが何かキーを押した
フォーム要素と<body>
onload
ページが読み込まれた時
body要素と共によく用いられる
基本的なフォーム
•
テキスト
– input要素のtype属性がtext
•
ラジオボタン
– input要素のtype属性がradio
– name属性の値を共通にすることでグループ化できる
– value属性で値を指定
•
メニュー(リストボックスとコンボボックス)
– select要素とoption要素
– select要素のsize属性の値が1の場合
にはコンボボックス,2以上の場合には
リストボックス
– option要素のvalue属性で値を指定
•
チェックボックス
– input要素のtype属性がcheckbox
– value属性で値を指定
•
テキストエリア
– textarea要素
– rows属性で行数,cols属性で列数を表す
•
ボタン
– input要素のtype属性がbutton(または,submit, reset)
<form>
<input type=“”>XXX
<select>
<option>~
</select>
<textarea></textarea>
</form>
テキストボックスの入力値の取得
• テキストボックス内に入力したデータを、
ボタンが押されたらdiv要素に出力
• ex15.html
12
テキストボックスの入力値の取得
JavaScript
function getValue() {
var text = document.getElementById("input").value;
document.getElementById("output").innerHTML = text;
}
function checkValue() {
var text = document.getElementById("input").value;
if (text == "") {
alert("文字を入力してください.");
} else {
alert("OK");
}
}
HTML
<form>
文字を入力してください。 <br />
<input type="text" id="input“ onkeyup=“getValue()" />
<input type=“button” value=“値の確認" onclick=“checkValue()" />
</form>
<div id="output"></div>
演習問題5
• テキストボックスにクイズの正解番号入力し,idが
ouputのdivタグに,正解か不正解かを出力する
JavaScriptプログラムを作成せよ
– クイズはHTMLとして記述すること
– parseInt関数を利用して,文字列を数値に変換
– 余力があれば,数値かどうかのチェックも行うこと
• isNaN(Not a Number)関数を利用すると,入力値が数値かどう
かを判別可能 (数値でない場合にtrueを返す)
演習問題5(発展版)
• さらに余力がある人は,回答ボタンの横のspan
要素に以下のメッセージを出力するようにしてみ
てください
– テキストボックスが空または1〜3の数値以外の場合
には「1〜3の数値を入力してください」
– テキストボックスが1〜3の数値の場合には「OK」
• ex15.htmlのonkeyupイベントハンドラを用いること
• メッセージは上記のとおりでなくても良い
© Copyright 2026 ExpyDoc