JavaScript 資料元素集合與數組的區別說明

來源:互聯網
上載者:User

其中getElementsByName(name)方法是擷取頁面中所有具有name屬性的元素,但這個方法在IE與標準瀏覽器中所取到的內容不一樣。在IE中getElementsByName(name)方法所取到的元素是其本身就內建有name屬性也就是form表單中所列出的所有元素(這些元素本身就內建有name屬性);標準瀏覽器中getElementsByName(name)方法所取到的元素是具有name屬性的元素(本身就帶有此屬性+人為添加的此屬性)。所以如果在IE瀏覽器中用此方法來擷取頁面中所有帶有name的元素時,只能取出其自身本來就具有此屬性的那些元素(表單類元素)而那些人為添加的name屬性元素則不會被取出來;標準瀏覽器則不會這樣,它會將頁面中所有帶name屬性的元素全部取出。

getElementsByName()與getElementsByTagName()方法的共同之類是它們會把所取得的頁面元素組成一個元素集合并非是數組(雖然用firebug中的console.log()列印出來時是數組的形式)。如果用Object.porototype.toString.apply(arr)方法來查看取得的資料結果時,其返回的是“[object HTMLCollection]”而不是“[object Array]”。這樣一來用這兩種方法所取得的元素集合就不能像使用數組一樣來調用數組的一些方法進行操作了而需要將此集合進行轉換,將元素集合轉換為數組的形式就可以像運算元組一樣對裡面的元素進行處理了。

這個元素集合具有如下的屬性和方法:

1、元素索引(index)

2、元素集合的長度(length)

3、item()方法:通過傳入不同的索引值可以取得集合中相應的元素。IE下沒有此方法。

4、FF中還有一個namedItem(name)方法,取得具有name屬性的第一個元素。只有FF下有這個方法。

關於元素集合向數組形式的轉換方法有很多種,大家可以在網上搜尋一下就有很多。也可以到司圖正美的這篇《js將類數組對象轉換成數組對象》博文中學習一。

以下是一個數群組轉換的方法: 複製代碼 代碼如下:function makeArray(arr){
if(arr.item){
var len = arr.length;
var array = [];
while(len--){
array[len] = arr[len];
}
return array;
}
return Array.prototype.slice.call(arr);
}

這是一個小例子,可以看一下轉換後的結果: xmlns="http://www.w3.org/1999/xhtml">

getElements()函數中定義了一個數組,其內容分別是1,2,3,4,5,6

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.