DOM基礎とDOMの簡単な応用


1 DOMベース:
1.2ブラウザの互換性IE9.0       40%; Chrome  60%; Firefox    99%;
1.3 DOMノード:.サブノード(childNode,nodeType).親ノード(parentNode)はスタイルの影響を受けません.offsetParent//は、すでに配置されている親要素を探します.スタイルによって違います
CSS絶対位置決め要素は、誰によって位置決めされますか?これは、既に位置する親要素に基づいて位置付けされ、位置付けされた親要素1.4の先頭ノードを常に上に探す.firstChild,firstElementChild .LastChild,lastElementChild 1.5兄弟ノード.nextSibling,nextElementSibling .previousSibling,previousElementSibling
1.6 DOMを利用して要素属性要素の属性操作を操作する方法:第一種類:oDiv.style.display='block'//属性値を変更できる方法2つ目:oDiv.style['display']='block'//すなわち属性値を変更することもできるし、属性名を変更することもできる3つ目:DOM方式を用いる.DOM方式の操作要素の属性取得:getAttribute(名前).設定:setAttribute(名前、値).削除:removeAttribute(名前)1.7 classNameを使用して要素を取得します.classNameで要素を選択する方法すべての要素を選択します.className条件でフィルタします.関数1.8の作成、要素の挿入、削除にカプセル化する.作成DOM要素createElement(ラベル名)作成ノード、appendChild(ノード)作成ノードを挿入し、末尾にノードを追加する.要素を挿入します.InsertBefore(ノード、既存のノード)は、既存の要素の前にノードを挿入する.DOM要素removeChild(ノード)を削除ノードの親を削除する.removeChild(サブノード)ノード1.9ドキュメントフラグメント//を削除するのは、ページに多くのノードを挿入する必要がある場合、ドキュメントフラグメントを採用しない場合は、まずノードを挿入し、ページをレンダリングすることでDOMのパフォーマンスを低下させるためです.作成したノードをまず急いでページを挿入するのではなく、まずドキュメントの破片に挿入し、最後にドキュメントの破片のノードを一度にすべて挿入すると、ページは一度だけレンダリングされ、DOMのパフォーマンスが大幅に向上します.ドキュメントの断片化はDOMの操作性能を向上させることができる.ドキュメントフラグメントの原理document.createDocumentFragment();
2 DOMの簡単な応用
適用一:表の改行変色
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
		window.onload=function(){
			var oTab=document.getElementById('tab');
			var color='';//             ,       ,          ,     color        
			for(var i=0;i<oTab.tBodies[0].rows.length;i++)
			{
				oTab.tBodies[0].rows[i].onmouseover=function(){
					color=this.style.background;//      ,             
					this.style.background='yellow';	//             ,      		
					}
				oTab.tBodies[0].rows[i].onmouseout=function(){
					this.style.background=color;
				}
				if(i%2){oTab.tBodies[0].rows[i].style.background='blue';}
				else{oTab.tBodies[0].rows[i].style.background='';}
			}
		}
		
		</script>
	</head>
	<body>
		<table border="1" bordercolor="blue" id="tab">
			<thead>
					<td><h2>ID</h2></td>
					<td><h2>Name</h2></td>
					<td><h2>Age</h2></td>
			</thead>
			<tbody>
				<tr>
					<td>1</td>
					<td>Blue</td>
					<td>15</td>
				</tr>
					<tr>
					<td>2</td>
					<td>Mikyou</td>
					<td>26</td>
				</tr>
					<tr>
					<td>3</td>
					<td>weak</td>
					<td>24</td>
				</tr>
					<tr>
					<td>4</td>
					<td>sky</td>
					<td>35</td>
				</tr>
					<tr>
					<td>5</td>
					<td>  </td>
					<td>18</td>
				</tr>
			</tbody>
		</table>
	</body>
</html>

適用2:表の追加と削除
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	<script type="text/javascript">
		window.onload=function(){
			var oTab=document.getElementById('tab');
			var oBt=document.getElementsByTagName('input');
			var id=oTab.tBodies[0].rows.length+1;
			oBt[2].onclick=function(){
				var oTr=document.createElement('tr');
				var oTd=document.createElement('td');
				oTd.innerHTML=id++;
				oTr.appendChild(oTd);
				var oTd=document.createElement('td');
				oTd.innerHTML=oBt[0].value;
				oTr.appendChild(oTd);
				var oTd=document.createElement('td');
				oTd.innerHTML=oBt[1].value;
				oTr.appendChild(oTd);
				var oTd=document.createElement('td');
				oTd.innerHTML='<a href="javascript:;">  </a>';
				oTr.appendChild(oTd);
				var oA=oTd.getElementsByTagName('a')[0];
				oA.onclick=function(){
					oTab.tBodies[0].removeChild(this.parentNode.parentNode);
				}
				oTab.tBodies[0].appendChild(oTr);
			}
			for(var i=0;i<oTab.tBodies[0].rows.length;i++)
			{
				var oA=oTab.tBodies[0].rows[i].cells[3].getElementsByTagName('a')[0];
			        oA.onclick=function(){
			        	oTab.tBodies[0].removeChild(this.parentNode.parentNode);
			        }
			}
		}
	</script>
	</head>
	<body>
	  :<input type="text" />
	  :<input type="text" />
	<input type="button" value="    "/>
		<table border="1" bordercolor="blue" id="tab" width="300" style="text-align: center;">
			<thead>
					<td><h2>ID</h2></td>
					<td><h2>Name</h2></td>
					<td><h2>Age</h2></td>
					<td><h2>  </h2></td>
			</thead>
			<tbody>
				<tr>
					<td>1</td>
					<td>Blue</td>
					<td>15</td>
					<td><a href="javascript:;">  </a></td>
				</tr>
					<tr>
					<td>2</td>
					<td>Mikyou</td>
					<td>26</td>
					<td><a href="javascript:;">  </a></td>
				</tr>
					<tr>
					<td>3</td>
					<td>weak</td>
					<td>24</td>
					<td><a href="javascript:;">  </a></td>
				</tr>
					<tr>
					<td>4</td>
					<td>sky</td>
					<td>35</td>
					<td><a href="javascript:;">  </a></td>
				</tr>
					<tr>
					<td>5</td>
					<td>  </td>
					<td>18</td>
					<td><a href="javascript:;">  </a></td>
				</tr>
			</tbody>
		</table>
	</body>
</html>