DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> js中document.getElementByid、document.all和document.layers區分介紹
js中document.getElementByid、document.all和document.layers區分介紹
編輯:關於JavaScript     
document.all是IE 4.0及以上版本的專有屬性,是一個表示當前文檔的所有對象的婁組,不僅包括頁面上可見的實體對象,還包括一些不可見的對象,比如html注釋等等。在document.all數組裡面,元素不分層次,是按照其在文檔中出現的先後順序,平行地羅列的。所以可以用數字索引來引用到任何一個元素。但比較常用的是用對象id來引用一個特定的對象,比如document.all["element"]這樣。
document.layers是Netscape 4.x專有的屬性,是一個代表所有由儲如<div><layer>等定位了的元素的數組。通常也是用<div>或<layer>對象的id屬性來引用的,但是這裡面不包含除此以外的其它元素。
其實這兩個屬性沒什麼可比性,大概你經常看到他們同時出時,這有一個歷史原因。在第四代浏覽器出現的時候,標准相當混亂,Netscape和微軟分別推出了它們的Navigator 4.x和IE 4.0,這兩個浏覽器的巨大差異,也使開發者面臨了一個使網頁跨浏覽器兼容的噩夢。而document.layer和document.all分別是兩者一個最顯著的標志,為了確定浏覽者使用的什麼浏覽器,通常用是否存在document.layers和document.all來判斷。
新的統一的標准用document.getElementById等系列方法來引用DOM對象,而且Netscape 6.0以後放棄了layers特征,雖然IE繼續保留了document.all,但這最終沒有成為DOM標准的一部分。希望document.layers和document.all能夠早日作古,讓標准早日深入人心!
代碼示例:
復制代碼 代碼如下:
<script language="JavaScript">
function showtime()
{
var GetTime=newDate(); //獲取當前日期
var Years=GetTime.getYear(); // 取當前日期的年
var Months=GetTime.getMongh();// 取當前日期的月
var Days=GetTime.getDate();// 取當前日期的日
var Hours=GetTime.getHours();// 取當前日期的小時
var Minutes=GetTime.getMinutes();// 取當前日期的分鐘
var Seconds=GetTime.getSeconds();// 取當前日期的秒
var Dn='AM';
if(Hours<=9) //小時少於9時,前面加0,
{
Hours='0'+Hours;
}
if(Hours==0||Hours>12)
{
Dn='PM'; //小時大於12或0時,設為PM(下午)
}
if(Minutes<=9)
{
Minutes='0'+Minutes;
}
if(Seconds<=9)
{
Seconds='0'+Seconds;//秒少於9時,前面加0,
}
NowTime=Years+'年'+Months+'月'+Days+'日 '+Hours+':'+Minutes+':'+Seconds+''+Dn; //當前日期的字符串
if(document.layers){ //不同浏覽器下, 將當前日期的字符串顯示出來.
document.layers.liveclock.document.write(NowTime)
document.layers.liveclock.document.close()
}
else if(document.all)
liveclock.innerHTML=NowTime
setTimeout('showtime()',1000) //每秒運行showtime函數一次,
}

document.all是IE下面的document屬下的所有元素的集合
可以通過document.all.length來看到document下面的元素數量
document.all(index)後面的index參數是一個集合方法
如果index是string那麼可以獲得document下面具有id或name為index的元素 如果只有一個的元素話返回這個元素 如果有多個元素id或name是index的話就返回一個集合 如果沒有的話就返回null
這樣並不好 因為當你不知道有多少個id或name是index的元素時 就比較容易出錯.
如果index是數字的話 那麼會返回以0為基礎的 文檔中第index個元素. 元素的文檔序列可以通過Element.sourceIndex來獲取
document.getElementById(name) 只返回第一個具有id或name為name的元素 所以不是null就是一個元素 而不會返回集合 這樣就大大減少了錯誤發生的可能性
如果需要返回一個id或name為name的元素集合的話 就要用 document.getElementsByName(name)來獲取
document.getElementById
返回 ID 屬性值與指定值相同的第一個對象,如果 ID 屬於一個集合,getElementById 方法返回集合中的第一個對象。
document.all
如果 ID 屬於一個集合,document.all返回一個集合。而且只支持IE。
所以在使用IE的前提下,document.all(index)要生效需要保證index是唯一的
所以如果你想讓你寫的js腳本在目前的大多浏覽器中使用,需要使用[公共標准] 標准的Javascript
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved