Microsoft Word - no06.doc

Similar documents
Microsoft Word - no04.doc

Microsoft Word - no03.doc

Microsoft PowerPoint _2b-DOM.pptx

JavaScriptプログラミング入門 2.JavaScriptの概要

JavaScript 演習 2 1

Microsoft Word - no11.docx

フォームとインナー HTML を使って動的にページ内の文章を変更しよう 問題 1. つぎの指示と画面を参考に HTML を組みなさい 仕様 テキストボックスに任意の文字を入力し [ コメント ] ボタンをクリックすると 下部の文章がテキストボックスの内容に置き換わる フォーム名 : f1 テキストボ

SmallTown 日付オブジェクト 日付オブジェクトを使ってページ内にいろいろな仕掛けをつくってみよう 1. 日付オブジェクトとは JavaScriptではいろいろなオブジェクトを扱えますが 日付オブジェクトもその一つです 手順としては 1 日付オブジェクトを作成する2そのオブジェクトから日にちや

第7回 Javascript入門

Microsoft PowerPoint _2b-DOM.pptx

Webデザイン論

プログラミング基礎I(再)

Java Scriptプログラミング入門 3.6~ 茨城大学工学部情報工学科 08T4018Y 小幡智裕

前ページからの続き // テキストボックス02 id 属性で取得 // id 属性で取得する場合は一意に決まるので 何番目かの指定は不要 var textbox02elem = document.getelementbyid("text_box02_id"); if ("001" == statee

4. Webブラウザのオブジェクト

Microsoft Word - no202.docx

Microsoft Word - no103.docx

JavaScript演習

医療者のための情報技術入門第 9 回プログラムがはたらくしくみを学ぶ (2) 日紫喜光良 概要 1. はじめに- 具体例から ここから Javascript のプログラミング入門 次はどうする--

GEC-Java

JavaScript プログラミング 4.Web ブラウザのオブジェクト 4-4 window オブジェクト 4-5 location オブジェクトと history オブジェクト 4-6 link オブジェクト 08T4082A 野太樹

Web プログラミング 1 JavaScript (3) (4 章 ) 2013/7/3( 水 ) 日時 講義内容 4/10 ( 水 ) ガイダンス Web (1 章 ) 4/17 ( 水 ) HTML+CSS (1) (2 章 ) 4/24 ( 水 ) HTML+CSS (2) (2 章 ) 5/

JavaプログラミングⅠ

第 8 回の内容 クライアントサイド処理 JavaScript の基礎

Microsoft PowerPoint - CSS(Cascading Style Sheets)の基本.pptx

Web データ管理 JavaScript (3) (4 章 ) 2011/12/21( 水 ) 湘南工科大学講義資料 Web データ管理 (2011) 阿倍 1/18

PowerPoint プレゼンテーション

Microsoft PowerPoint - chap10_OOP.ppt

情報システム設計論II ユーザインタフェース(1)

Microsoft Word - no206.docx

(3) 本文を書く 実際にページを開いたときに表示される本文を書いてみましょう から の間に書きます <html > <head > <title > 武のホームページ </title > </head > </html > (4) ページを保存する ここで一度ページを保存してみましょう テキストエ

XMLプログラミング(DOM編)

Web データ管理 JavaScript (1) (4 章 ) 2011/12/7( 水 ) 湘南工科大学講義資料 Web データ管理 (2011) 阿倍 1/21

演習室の PC のハードディスクには演習で作成したデータは保管できません 各 PC の ネットワーク接続 ショートカットからメディア情報センターのサーバーにアクセスしてください (Z ドライブとして使用できます ) 演習名 使用するフォルダ 演習 1 Z: Web データ管理 演習

Microsoft Word - 3new.doc

Web プログラミング 1 JavaScript (4) (4 章 ) 2013/7/17( 水 ) 日時 講義内容 4/10 ( 水 ) ガイダンス Web (1 章 ) 4/17 ( 水 ) HTML+CSS (1) (2 章 ) 4/24 ( 水 ) HTML+CSS (2) (2 章 ) 5

Microsoft Word - VBA基礎(6).docx

第7回 Javascript入門

intra-mart Accel Platform

Prog2_12th

JavaScriptで プログラミング

Microsoft PowerPoint - handout07.ppt [互換モード]

Microsoft Word - no205.docx

コンテンツメディアプログラミング実習2

Microsoft Word - no15.docx

合宿事前講座 Web 開発の基本編その 2 情報研究会モブ 薗田海樹 The. H.30 情報研究会 1

教材ドットコムオリジナル教材

Microsoft Word - no12.doc

PowerPoint プレゼンテーション

プログラミング実習I

PowerPoint プレゼンテーション

PowerPoint Template

Microsoft Word - FWTEC0003.doc

正規表現応用

Microsoft Word - no13.docx

Webプログラミング演習

Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード]

(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド

PowerPoint プレゼンテーション

デジタル表現論・第6回

intra-mart Accel Platform — IM-共通マスタ スマートフォン拡張プログラミングガイド   初版  

E4X in Firefox nanto_vi (TOYAMA Nao)

Microsoft PowerPoint - prog03.ppt

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

JavaScript演習

コンピュータ中級B ~Javaプログラミング~ 第3回 コンピュータと情報をやりとりするには?

PowerPoint プレゼンテーション

Calendar Plus JavaScript API リファレンス ラジカルブリッジ Ver

Java言語 第1回

NetworkApplication-09

<4D F736F F D A957A A A8FEE95F18F88979D DEC90AC E646F63>

第 2 部 JavaScript 編 17 演習の答え 17.1( 演習 3-3)1 列目の width を 200px 2 列目を 300px にしなさい pr3-3.html <title> </title> <table border="1" style="border-collapse:co

Microsoft PowerPoint - ruby_instruction.ppt

Si 知識情報処理

JavaScript¥×¥í¥°¥é¥ß¥ó¥°ÆþÌç

Java 基礎問題ドリル ~ メソッドを理解する ~ 次のプログラムコードに 各設問の条件にあうメソッドを追加しなさい その後 そのメソッドが正しく動作することを検証するためのプログラムコードを main メソッドの中に追加しなさい public class Practice { // ここに各設問

レコードとオブジェクト

GEC-Java

NetworkApplication-12

編集する ファイルを開く マイクロデータの設定を行うファイルまたはファイルを開きます 開かれたファイルは編集画面に表示されて ブラウザ表示した時のプレビューも同時に表示されます HTML ファイルの選択 編集する ファイルを開くためにメインメニューから ファイル 開く を選びます ファイル選択ダイア

Prog2_6th

Microsoft PowerPoint - kougi10.ppt

メディプロ1 Javaプログラミング補足資料.ppt

Javaの作成の前に

第5回 マインクラフト・プログラミング入門

第21章 表計算

intra-mart Accel Platform — IM-Repository拡張プログラミングガイド   初版  

◎phpapi.indd

メソッドのまとめ

ポインタ変数

SmartBrowser_document_build30_update.pptx

Webプログラミング演習


1/2

overflow プロパティの指定は 親ボックスのスタイルに記述します overflow プロパティは position プロパティ (position: static; 以外 ) の指定がされていなと適用されません ボックスの外にはみ出た部分を表示させたくないときに hidden を使用します サ

Microsoft Word - CygwinでPython.docx

オブジェクト指向プログラミング・同演習 5月21日演習課題

第 3 回 Java 講座 今回の内容 今週の Java 講座はコレクション 拡張 for 文, ガベージコレクションについて扱う. 今週の Java 講座は一番内容が薄いも のになるだろう. コレクション コレクションとは大きさが決まっていない配列だと考えればよい. コレクションには List 先

Microsoft PowerPoint - ●SWIM_ _INET掲載用.pptx

ボタンイベントアプリイベント処理を含むアプリとして, ボタンをもち, ボタンを押すと文字列を表示するアプリを作る. このアプリは,HelloWorld アプリを改造して作成するため, アプリ作成の途中からの手順を示す. 1. ボタンの設置 (1) レイアウトにボタンを追加するパレットの フォーム ウ

Transcription:

2. オブジェクト ( もう一度 ) 値をいくつかまとめたものを C 言語では構造体と呼んでいました 構造体は複数の値を含んだものでした これに対して JavaScript では オブジェクト (Object) という物を使います オブジェクトは 値 ( プロパティ ) と動作 ( メソッド ) を持ちます これはオブジェクト指向プログラミングと言われるもの特徴です オブジェクトにアクセスすることでプロパティの変更や動作を実行できます プロパティはオブジェクトの属性を表すもので C 言語で言えば変数と考えるとわかりやすいでしょう それに対して メソッドはオブジェクトに何らかの動作をさせるものですから C 言語で言えば関数と考えればいいのです 構造体と同様にプロパティとメソッドにアクセスするには ".( ピリオド )" を使います object. プロパティ object. メソッド ( 引数...) オブジェクトには2 種類あって クラスオブジェクトと言われるものを直接使うタイプと クラスのオブジェクトを作成して そのオブジェクトを使うタイプです 大文字で始まっているのがクラスオブジェクトを意味します 2.1 であげた Math オブジェクトがクラスオブジェクトです したがって 全てのプロパティとメソッドを使うのは Math.??? や Math.???() という形でした Math は数学関係の計算ですから プロパティの値はいつも同じで メソッドも同じ動きをするだけになります それに対し 2.2 や 2.3 であげた Date オブジェクトや String オブジェクトは オブジェクトを作成して使うタイプです オブジェクトごとにプロパティの値は異なり それに応じたメソッドの戻り値がそのオブジェクトを作成するキーワードが new なのです 例えば now = new Date(); // 現在の時間でオブジェクトを作成 x = now.gettime(); // now のメソッドの呼出し target = new Date(2008, 9, 30, 12, 25); // 日付時刻を設定してでオブジェクトを作成 y = target.gettime(); // target のメソッドの呼出し という形で オブジェクトを作成して利用するという手順になります もちろん now と target は別のオブジェクトですから その中のプロパティは異なりますし メソッドの結果も異なります このようにオブジェクトを作成して利用するのが基本です しかし システムが標準で用意しているオブジェクトもあります それが document や window などのオブジェクトです document は現在表示している HTML 文書を意味するオブジェクト winodw はブラウザの表示しているウインドウを表すオブジェクトです これらのオブジェクトはシステムが最初から用意しているので オブジェクトを作成しなくても プロパティやメソッドを使うことができます これらのオブジェクトを使うことでプログラムをするのが JavaScript のスタイルです 3

3 文書 ( もう一度 ) 3.7 文書構造 HTML 文書を構造によって分けることを考えます ex30.html <body bgcolor="#ffffff"> ここで この HTML ファイルを分解してオブジェクトとして格納します ex30.html <title> ももたろさん <BODY> BGCOLOR="#ffffff" <H1> ももたろさん ( n) <div> name="momo" id="momo" ( n) ももたろさんももたろさん <br> ( n) おこしにつけたきびだんご <br> ( n) ひとつわたしにくださいな <br> ( n) ( n) このような文書の構造を考えます タグの間に他のタグや値であるテキストが入るという形式です それぞれのタグが一つの ノード にあたります それぞれのタグを指定するときに追加して書く部分がプロパティということになります 例えば body タグでは プロパティ bgcolor の値を #ffffff に設定しているということになります もちろん 他に link や vlink などのプロパティもありますが 指定しなかったということは標準のままにするという意味になります JavaScript のプログラムでプロパティの値を変更すれば 表示が変えることが可能です それぞれのタグは内部に別のタグやテキストを持っています これを子ノードと言います もちろん 子ノードは複数存在することがあります これに対し そのタグやテキストを含んでいる上位のタグの部分を親ノードと言います これは唯一に決まります この関係は そのノードオブジェクトのプロパティとして参照できます これらの関連のプロパティを表 3.1 にまとめました 4

表 3.1 親子ノード関連のノードのプロパティ プロパティ 内容 parentnode 親ノード childnodes 子ノードの配列 firstchild 最初の子ノード lastchild 最後の子ノード previoussibling 自分と同じレベルの一つ前のノード nextsibling 自分と同じレベルの一つ前のノード 表 3.2 ノード検索の document のメソッドメソッド内容 getelementbyid(id) id で検索戻り値は最初に見つかった1つ getelementsbyname(name) 名前で検索戻り値は配列 getelementsbytagname(tag) タグの名前で検索戻り値は配列 ではそのようなノードオブジェクトをどのように指定するのでしょうか そのために使われるの document のメソッドを表 にまとめました 各タグには name 属性で名前を付けたり id 属性で id をつけることができますので これをもとに検索するのです 一部の古いブラウザの仕様のため id 属性と name 属性は同じものにしておくのが無難です では一つ例をあげます 上にあげた文書構造を頭に入れて結果を見てみましょう ex31.html <title ももたろさん </title> <div name=momo" id="momo"> var momo = document.getelementbyid("momo"); document.write("momo は " + momo + "<BR>"); document.write("momo には " + momo.childnodes.length + " 個の子ノードがあります <br>"); for(i = 0; i < momo.childnodes.length; i++) { document.write(momo.childnodes[i] + "<BR>"); document.write("momo の親ノードは " + momo.parentnode + "<BR>"); document.write("momo の前のノードは " + momo.previoussibling + "<BR>"); document.write("momo の次のノードは " + momo.nextsibling + "<BR>"); 今回は getelementbyid メソッドを利用して <div> タグのノードを一つだけを手に入れました 5

3.8 ノードの作成と操作このような形でノードオブジェクトにアクセスできるようになりましたから 次はノードを作成する方法です ノードを作成するための document のメソッドを表 にまとめました ノードを作成しただけでは 文書の文書構造に入ってきませんから ノード操作を行うことになります ノードを操作するためのノードのメソッドを表 にまとめました 表 3.3 ノード作成の document のメソッド メソッド 内容 createelement(tag) タグのノードを作成する createtextnode(str) テキストノードを作成する clonenode(node) ノードを複製する 表 3.4 ノード操作のメソッド メソッド 内容 appendchild(new) 最後の子ノードの後ろに new を追加する insertbefore(new, node) 子ノード node の前に new を挿入する removechild(node) 子ノードから node を削除する replacechild(new, old) 子ノード old を new で置き換える まずは追加と削除の例です ex32.html var i = 0; function textappend() { var momo = document.getelementbyid("momo"); var txt = document.createtextnode(" それでは " + (++i) + " 個あげましょう "); var br = document.createelement("br"); momo.appendchild(txt); momo.appendchild(br); <input type="button" value=" 追加 " onclick="textappend()"> 6

次に変更の例です 変更するには元になるものが必要なので最初に作っておきます ex33.html var i = 0; function textreplace() { var dango = document.getelementbyid("dango"); var txt = document.createtextnode(" それでは " + (++i) + " 個あげましょう "); var first = dango.firstchild; dango.replacechild(txt, first); <input type="button" value=" 置換 " onclick="textreplace()"> <span name="dango" id="dango"> あげない </span><br> ノードのタイプの判別やそのノードの内容も調べることができます ex34.html <title ももたろさん </title> function space(n) { sp = ""; for(i = 0; i < n; i++) { sp += " "; return sp; function dispnode(obj, node, level) { var i; str = space(level); if(node.nodetype == 1) { str += "<" + node.tagname + "> n"; obj.appendchild(document.createtextnode(str)); for(i = 0; i < node.childnodes.length; i++) { dispnode(obj, node.childnodes[i], level + 1); else if(node.nodetype == 3) { str += '"' + node.textcontent.replace(" n"," n") + '" n'; obj.appendchild(document.createtextnode(str)); 7

function disp() { var momo = document.getelementbyid("momo"); var show = document.getelementbyid("show"); dispnode(show, momo, 0); <input type="button" value=" 表示 " onclick="disp()"> <pre name="show" id="show"> </pre> nodetype プロパティでノードの種類がわかります これを使って 文書の構造を表示するプログラムです ここでは pre タグの中を書き換えていますから 改行はそのまま表示されます 練習問題 3.2 ものたろさんの歌詞を逆順に変更するプログラムを作成しなさい ex35.html var i = 0; function textreverse() { <input type="button" value=" 変更 " onclick="textreverse()"> 練習問題 3.3(ex36.html) ボタンを押すとものたろさんの歌詞が2 番に変わるようにプログラムを作成しなさい あげましょうあげましょう いまからおにのせいばつに ついてくるならあげましょう 8