javascript DOM(一)
9925 ワード
DOM:Dockment Object Model(テキストオブジェクトモデル)
D:ドキュメント-)ドキュメントまたはxmlドキュメント
O:オブジェクト---documentオブジェクトの属性と方法
M:モデル
DOMは、xml()に対するツリーベースのAPIです.
DOMツリー:ノードの階層.
DOMは一つの文書をファミリーツリー(父、子、兄弟)と表します.
DOMは、Nodeのインターフェースおよび多くのノードタイプを定義して、XMLノードの複数の態様を表す.
1.ノードとそのタイプ:
1)要素ノード
2)属性ノード
3)テキストノード
ノードとそのタイプ
ノード(node):ネットワーク理論に由来し、ネットワークの接続点の一つを表します.ネットワークはノードによって構成される集合である.
<p title=「a gentle reminder」>Don't forget to buy this stuff.
pはelement node.要素ノードです.
title=「a gentle reminder」はatribute node.属性ノードです.
Don't forget to buy this stuff.text node.テキストノードです.
なお、Don't forget to buy this stuffは、ノードpのサブノードである.
2.html文書のどこでjsコードを作成しますか?
0)htmlページに直接コードを書きます.
短所: jsとHtmlは結合性が強すぎて、メンテナンスに不便です.
1)一般的には、bodyノードの前に直接にbody内のノードを取得することはできません.この時点では、ドキュメントツリーのロードが完了していないため、指定されたノードが取得できません.ある方法の内部にある場合を除き、このようにすれば、メソッドを呼び出したときだけ、ノードを取得することができます.このときには、一般的な文書ツリーの読み込みが完了しました.
2)htmlドキュメント全体の最後に、類似コードを略語することができますが、これは習慣に合わないです.
3)一般的に、bodyノードの前でjsコードを作成するが、window.onloadイベントを利用する必要がある.イベントは、現在のドキュメントが完全にロードされた後にトリガされますので、コードはドキュメントの任意のノードに取得できます.
<script type=「text/javascript」>
window.onload=function(){
var cityNode=document.getElemenntById(「city」)
alert(cityNode)
)
4)onclickなどの属性の割り当てに関する問題:
スクリプトtype="text/javascript"内部でノードにイベントを追加する方法.いらないです.たとえば:
<script type=「text/javascript」>
var button=document.getElemenntById(「button」)
button.onclick=alert(「ハロー、World」);
ここではブットンにクリックイベントを追加しました.しかし、ページを読み込む時には、AlertウィンドウHello、Worldがあります.また、buttonをクリックしても、何の効果もありません.この原因は、button.onclickが実行しているのはalert(「ハロー、World」)です.しかし、alertは実行結果がない.
次の例:
<script type=「text/javascript」>
function hellowworld(){
alert(Hello,World);
)
var button=document.getElemenntById(「button」)
button.onclick=hellowworld;//ここではハロルドメソッドを実行します.括弧は入れないでください.括弧を入れると、そのままハロルドメソッドを実行するからです.括弧は入れないでください.
var test=hellowworld;//方法の引用
test()///ここでハロルド法体を実行します.
①. button.onclick=hello World()
不正な割当方法では、上記のコードはハロルド関数の実行をもたらしますが、Oclick属性に付与されるのは関数の実行結果です.
②. button.onclick=hello World;正しい割当方法で、Oclick属性を付与するのは関数の参照です.
3.どのようにして要素ノードを取得しますか?
1).Dcument.getElemenntById:id属性から対応する単一ノードを取得する
2)document.getElementsByTagName:ラベル名から指定されたノード名の配列を取得し、配列オブジェクトlength属性は配列の長さを取得することができる.
3).Dcument.getElementsByName:ノードのname属性から条件に合うノード配列を取得するが、ieの実現方式はW 3 C標準と異なる.htmlドキュメントにおいて、あるノード(li)にname属性がない場合、ieは使用する.
getElements ByNameはノード配列を取得できませんが、フォックスは可能です.
4)他の2つの方法getElementsByClass Name、getElements ByTagNamens、ieはまったくサポートしていないので、使用を推奨しません.
コードは以下の通りです
1)プロパティノードの値は、cityNode.idのように直接取得して設定することができます.
2)要素ノードのgetAttributeNode方法で属性ノードを取得し、nodeValueで属性値を読み書きする.
コード:
D:ドキュメント-)ドキュメントまたはxmlドキュメント
O:オブジェクト---documentオブジェクトの属性と方法
M:モデル
DOMは、xml()に対するツリーベースのAPIです.
DOMツリー:ノードの階層.
DOMは一つの文書をファミリーツリー(父、子、兄弟)と表します.
DOMは、Nodeのインターフェースおよび多くのノードタイプを定義して、XMLノードの複数の態様を表す.
1.ノードとそのタイプ:
1)要素ノード
2)属性ノード
3)テキストノード
ノードとそのタイプ
ノード(node):ネットワーク理論に由来し、ネットワークの接続点の一つを表します.ネットワークはノードによって構成される集合である.
<p title=「a gentle reminder」>Don't forget to buy this stuff.
pはelement node.要素ノードです.
title=「a gentle reminder」はatribute node.属性ノードです.
Don't forget to buy this stuff.text node.テキストノードです.
なお、Don't forget to buy this stuffは、ノードpのサブノードである.
2.html文書のどこでjsコードを作成しますか?
0)htmlページに直接コードを書きます.
短所: jsとHtmlは結合性が強すぎて、メンテナンスに不便です.
1)一般的には、bodyノードの前に直接にbody内のノードを取得することはできません.この時点では、ドキュメントツリーのロードが完了していないため、指定されたノードが取得できません.ある方法の内部にある場合を除き、このようにすれば、メソッドを呼び出したときだけ、ノードを取得することができます.このときには、一般的な文書ツリーの読み込みが完了しました.
2)htmlドキュメント全体の最後に、類似コードを略語することができますが、これは習慣に合わないです.
3)一般的に、bodyノードの前でjsコードを作成するが、window.onloadイベントを利用する必要がある.イベントは、現在のドキュメントが完全にロードされた後にトリガされますので、コードはドキュメントの任意のノードに取得できます.
<script type=「text/javascript」>
window.onload=function(){
var cityNode=document.getElemenntById(「city」)
alert(cityNode)
)
4)onclickなどの属性の割り当てに関する問題:
スクリプトtype="text/javascript"内部でノードにイベントを追加する方法.いらないです.たとえば:
<script type=「text/javascript」>
var button=document.getElemenntById(「button」)
button.onclick=alert(「ハロー、World」);
ここではブットンにクリックイベントを追加しました.しかし、ページを読み込む時には、AlertウィンドウHello、Worldがあります.また、buttonをクリックしても、何の効果もありません.この原因は、button.onclickが実行しているのはalert(「ハロー、World」)です.しかし、alertは実行結果がない.
次の例:
<script type=「text/javascript」>
function hellowworld(){
alert(Hello,World);
)
var button=document.getElemenntById(「button」)
button.onclick=hellowworld;//ここではハロルドメソッドを実行します.括弧は入れないでください.括弧を入れると、そのままハロルドメソッドを実行するからです.括弧は入れないでください.
var test=hellowworld;//方法の引用
test()///ここでハロルド法体を実行します.
①. button.onclick=hello World()
不正な割当方法では、上記のコードはハロルド関数の実行をもたらしますが、Oclick属性に付与されるのは関数の実行結果です.
②. button.onclick=hello World;正しい割当方法で、Oclick属性を付与するのは関数の参照です.
3.どのようにして要素ノードを取得しますか?
1).Dcument.getElemenntById:id属性から対応する単一ノードを取得する
2)document.getElementsByTagName:ラベル名から指定されたノード名の配列を取得し、配列オブジェクトlength属性は配列の長さを取得することができる.
3).Dcument.getElementsByName:ノードのname属性から条件に合うノード配列を取得するが、ieの実現方式はW 3 C標準と異なる.htmlドキュメントにおいて、あるノード(li)にname属性がない場合、ieは使用する.
getElements ByNameはノード配列を取得できませんが、フォックスは可能です.
4)他の2つの方法getElementsByClass Name、getElements ByTagNamens、ieはまったくサポートしていないので、使用を推奨しません.
コードは以下の通りです
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Untitled Document</title>
<script type="text/javascript">
window.onload = function(){
//1. " " li
//1).
var bj = document.getElementById("city");
//alert(bj);
//2). ie : name , ie
bj = document.getElementsByName("BeiJing");
//alert(bj.length);
var genders = document.getElementsByName("gender");
//alert(genders.length);
//3).
var uls = document.getElementsByTagName("ul");
alert(uls.length);
};
</script>
</head>
<body>
<p> ?</p>
<ul id="city">
<li id="bj" name="BeiJing"> </li>
<li> </li>
<li> </li>
<li> </li>
</ul>
<br><br>
<p> ?</p>
<ul id="game">
<li id="rl"> </li>
<li> </li>
<li> </li>
<li> </li>
</ul>
<br><br>
gender:
<input type="radio" name="gender" value="male"/>Male
<input type="radio" name="gender" value="female"/>Female
</body>
</html>
4.属性ノードを取得する:1)プロパティノードの値は、cityNode.idのように直接取得して設定することができます.
2)要素ノードのgetAttributeNode方法で属性ノードを取得し、nodeValueで属性値を読み書きする.
コード:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Untitled Document</title>
<script type="text/javascript">
window.onload = function(){
var maleNode = document.getElementsByName("gender")[0];
//1.
alert(maleNode.type);
//2. , value 。
maleNode.value = "male^^";
//3. , ( )
/*
var typeNode = maleNode.getAttributeNode("type");
alert(typeNode.nodeValue);
typeNode.nodeValue = "text";// , ,firefox , IE 。
*/
};
</script>
</head>
<body>
<p> ?</p>
<ul id="city">
<li id="bj" name="BeiJing"> </li>
<li> </li>
<li> </li>
<li> </li>
</ul>
<br><br>
<p> ?</p>
<ul id="game">
<li id="rl"> </li>
<li> </li>
<li> </li>
<li> </li>
</ul>
<br><br>
gender:
<input type="radio" name="gender" value="male"/>Male
<input type="radio" name="gender" value="female"/>Female
</body>
</html>
5.要素ノードのサブノードを取得する(要素ノードのみがサブノードです!!!):(要素ノードすなわち:など、属性ノイド、type、name、valueなど).1)child Nodes属性は、すべのサービスドを取得する。火狐とieの実现方法に违いがある。2)firstChild属性は、第1のサドルドドを取得する。 <html
<head>
<meta http-equiv=“Content-Type”content=“text/html;charset=UTF-8”
<title>Unititled Dcument</title>
<script type=「text/javascript」>
window.onload=function(){
//1.チアシティノードのすべてのliサブノードを取得する(すべてのサブノードを取得する:フォックスとieの実装方法に違いがある)
var cityNode=document.getElemenntById(「city」)
var liNodes=cityNode.childNodes;
alert(liNodes.length)
//2.チアシティノードの第一のサブノードを取得する
var first=cityNode.first Child;
alert(first)
//3.チアシティノードの最後のサブノードを取得する
var last=cityNode.lastChild;
alert(last)
}
</script>
</head>
<body>
<p>どの都市が好きですか?p>
<ul id=「city」>
<li id=“bj”name=“BeiJing”北京</li>
<li>上海<li>
<li>東京<li>
<li>ソウル特別市<li>
</ul>
<br/><br/>
<p>どのゲームが好きですか?p>
<ul id=「game」>
<li id=「l」紅警<li>
<li>実況<li>
<リ>極上飛車<リ>
<リ>魔獣<リ>
</ul>
<br/><br/>
gender:
<input type=“radio”name=“gender”value=“male”Male
<input type=「radio」name=「gender」value=「female」/>Female
</body>
</> 6.ノイドの属性:1).ノデName:現在のノードの名前を表します。読み取り専用属性.*.指定されたたノードがテックスである場合、nodeName属性は内容が「震えtext」です。の文字列に戻ります。2).nodeType:1つの整数を返します。この値は、所与のノードのタイを表にします。読み取り専用属性。1--要素ノード、2--属性ノード、3--テックスノド 3)nodeValue:与えられたノ-ドの現在価値を返します。読み书きの属性①.元素ノード、戻り値はnullです。②.属性ノード:戻り値は此の属性の価値です。③テックスノート:回复の内容です。 <html
<head>
<meta http-equiv=“Content-Type”content=“text/html;charset=UTF-8”
<title>Unititled Dcument</title>
<script type=「text/javascript」>
window.onload=function(){
//1.要素ノードの属性
var cityNode=document.getElemenntById(「city」)
alert(cityNode.nodeName);
alert(cityNode.nodeType)
//元素ノードのnodeValue属性はnullに戻ります。
alert(cityNode.nodeValue)
//2.属性ノードの属性
var id Node=cityNode.get AttributeNode(“id”);
alert(idNode.nodeName);
alert(idNode.nodeType)
alert(idNode.nodeValue)
}
</script>
</head>
<body>
<p>どの都市が好きですか?p>
<ul id=「city」>
<li id=“bj”name=“BeiJing”北京</li>
<li>上海<li>
<li>東京<li>
<li>ソウル特別市<li>
</ul>
<br/><br/>
<p>どのゲームが好きですか?p>
<ul id=「game」>
<li id=「l」紅警<li>
<li>実況<li>
<リ>極上飛車<リ>
<リ>魔獣<リ>
</ul>
<br/><br/>
gender:
<input type=“radio”name=“gender”value=“male”Male
<input type=「radio」name=「gender」value=「female」/>Female
</body>
</> 7.テックスノイドを取得する: 1)スティップ:要素ノイド-->要素ノードのサブノイドを取得する2)要素ノードがテキトノのサブノドであり、例え<li id=「bj」name=「Beiing都市」である。p>、先に指定された要素ノードのeleNodeを取得しても良いです。 その后、eleNode.first Child.nodeValueの方法を利用して、そのテックスノートの価値を読む。コード: <html
<head>
<meta http-equiv=“Content-Type”content=“text/html;charset=UTF-8”
<title>Unititled Dcument</title>
<script type=「text/javascript」>
window.onload=function(){
//1.㌘bjのテキストノードを取得する
var bjNode=document.getElemenntById(「bj」)
var bjText Node=bjNode.first Child;はサブノードしかないので、ここではfirst ChildとlastChildを使っても同じです。またはchild Nodes[0]
//2.テキストノードの3つの属性を取得する
//alert(bjText Node.nodeName);
//alert(bjText Node.nodeType)
テキストノードの値を/取得する
alert(bjText Node.nodeValue)
//テキストノードの値を設定する
bjText Node.nodeValue=“^^”+bjText Node.nodeValue;
}
</script>
</head>
<body>
<p>どの都市が好きですか?p>
<ul id=「city」>
<li id=“bj”name=“BeiJing”北京</li>
<li>上海<li>
<li>東京<li>
<li>ソウル特別市<li>
</ul>
<br/><br/>
<p>どのゲームが好きですか?p>
<ul id=「game」>
<li id=「l」紅警<li>
<li>実況<li>
<リ>極上飛車<リ>
<リ>魔獣<リ>
</ul>
<br/><br/>
gender:
<input type=“radio”name=“gender”value=“male”Male
<input type=「radio」name=「gender」value=「female」/>Female
</body>
</>