DOM = document + object+model
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Shopping List</title>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Shopping List</title>
<!-- 樣式表 -->
<style>
p {
color: yellow;
font-family: "arial", sans-serif;
font-size:1.2em;
}
body {
color:white;
background-color:black;
}
.special {
font-style:italic;
}
h2.special {
text-transform:uppercase;
}
#purchases {
border:1px solid white;
background-color:#333;
color:#ccc;
padding:1em;
}
#purchases li {
font-weight:bold;
}
</style>
</head>
<body>
<h1>what to buy</h1>
<h2 class="special">This is uppercase</h2>
<p title="a gentle reminder">Don't forget to buy this stuff.</p>
<ul id="purchases">
<li>A tin of beans</li>
<li class="special">Cheese</li>
<li >Milk</li>
</ul>
<!-- Mark-up goes here -->
<script src="file.js"></script>
</body>
</html>
<style>
p {
color: yellow;
font-family: "arial", sans-serif;
font-size:1.2em;
}
body {
color:white;
background-color:black;
}
.special {
font-style:italic;
}
h2.special {
text-transform:uppercase;
}
#purchases {
border:1px solid white;
background-color:#333;
color:#ccc;
padding:1em;
}
#purchases li {
font-weight:bold;
}
</style>
</head>
<body>
<h1>what to buy</h1>
<h2 class="special">This is uppercase</h2>
<p title="a gentle reminder">Don't forget to buy this stuff.</p>
<ul id="purchases">
<li>A tin of beans</li>
<li class="special">Cheese</li>
<li >Milk</li>
</ul>
<!-- Mark-up goes here -->
<script src="file.js"></script>
</body>
</html>
JavaScript
<!-- alert(typeof document.getElementById("purchases"));
<!-- alert(document.getElementsByTagName("*").length);
alert(document.getElementsByClassName("special").length);
var shopping = document.getElementById("purchases");
alert(shopping.getElementsByTagName("*").length);
function add(num1,num2) {
var total = num1*num2;
alert(3 == "3");
}
<!-- alert(document.getElementsByTagName("*").length);
alert(document.getElementsByClassName("special").length);
var shopping = document.getElementById("purchases");
alert(shopping.getElementsByTagName("*").length);
function add(num1,num2) {
var total = num1*num2;
alert(3 == "3");
}
HTML 5 DOM中新增了一個令人期待已久的方法:getElementsByClassName。這方法讓我們能夠Class屬性中的類名來訪問元素。但是這個方法比較新,只有較新的瀏覽器才支持他。
因此我們可以 寫一個方法來實現這個功能。
function getElementByClassName(node, classname) {
if(node.getElementsByClassName) {
return node.getElementsByClassName(classname);
} else {
var results = new Array();
var elems = node.getElementsByTagName("*");
for(var i=0; i<elems.length; i++) {
if(elems[i].className.indexOf(classname) != -1) {
results[results.length] = elems[i];
}
}
return results;
}
}
if(node.getElementsByClassName) {
return node.getElementsByClassName(classname);
} else {
var results = new Array();
var elems = node.getElementsByTagName("*");
for(var i=0; i<elems.length; i++) {
if(elems[i].className.indexOf(classname) != -1) {
results[results.length] = elems[i];
}
}
return results;
}
}
var shopping = document.getElementById("purchases");
alert(shopping.getAttribute("title"));
shopping.setAttribute("title", "a list of goods");
alert(shopping.getAttribute("title"));
alert(shopping.getAttribute("title"));
shopping.setAttribute("title", "a list of goods");
alert(shopping.getAttribute("title"));
setAttribute:先創建屬性,然後設置他的值
這裏有個非常值得關注的細節:通過setAttribute對文檔做出修改後,在通過瀏覽器view source選項去查看文檔的源代碼時看到的仍將是改變前的屬性值,
也就是說setAttribute做出的修改不會反映在文檔本身的源代碼裏。這種”表裏不一“的現象源自DOM的工作模式:先加載文檔的靜態內容,再動態刷新,動態刷新
不會影響文檔的靜態內容。這正是DOM的真正威力:對頁面內容進行刷新卻不需要再瀏覽器裏刷新頁面。