我今天在IE8的DOM選擇元素的JavaScript'選項'屬性的實現中發現了一些奇怪的行爲。IE8 JavaScript:select.options行爲
考慮下面的HTML:
<select id="sel"><option value="val">An option</option></select>
和JavaScript:
var sel = document.getElementById('sel');
alert(sel === sel.options); //alerts 'true' in IE8
顯然,聰明的傢伙寫在IE8選擇執行寫select元素上的索引,然後過它將自己公開爲JavaScript自己的「選項」屬性。
我的問題是:根據JavaScript語言規範,這是預期的功能嗎?這是一個已知的錯誤?我是否應該繼續將「選項」屬性作爲對象來對待,而不是專門用於數組?
這不是選擇DOM元素火狐3.5,鉻1.0或Safari 3.1,其中「選項」屬性被公開爲JavaScript數組下如何表現...
作爲參考,我碰到這是當我將'options'屬性傳遞給jQuery構造函數以包裝其元素時。而不是帶有X元素的jQuery對象的預期結果(如使用Firefox,Chrome和Safari),我返回了一個帶有1個元素(select元素本身)的jQuery對象。
它在IE7中也是一樣的行爲。但在FF中提醒虛假。 – rahul 2009-09-17 04:39:10