2010-11-22 29 views
1

對於內部工具,我需要使用Firefox 1.5(是的,我知道......),僅用於封閉系統。爲什麼Firefox 1.5不能解析SELECT下拉的DOM子元素?

我有一個基本的HTML select下拉菜單:

<select name="selectName" ID="Select"> 
    <option value="A" selected>Tom</option> 
    <option value="B">Jim</option> 
    <option value="C">Nancy</option> 
</select> 

在JavaScript中,我想提取所選擇的選項的名稱(內部文本)。

Firefox 3.6我可以做到以下幾點:

var x = document.getElementById("Select"); 
var name = x.children[x.selectedIndex].text; 

和名稱將包含所選放下串下來。 (默認情況下Tom

然而,當我運行在Firefox 1.5的代碼,我得到以下錯誤:

x.children has no properties

不幸的是,我不能在1.5安裝Firebug的,因爲它是不兼容的,獲取更多信息。

我在1.5上有一個JavaScript錯誤控制檯,就是這樣。

我還能如何獲得所選選項的文本,這將與FF1.5一起使用。

有沒有可以在這種情況下工作的JQuery方法?

而且,我很感興趣,爲什麼這並不在FF1.5

工作(有沒有兼容的JS調試器FF 1.5?)

謝謝。

+2

孩子在Firefox中不是一個有效的DOM屬性。我相信這只是IE瀏覽器。請參閱:http://stackoverflow.com/questions/431861/jquery-each-tr-children-is-undefined-in-firefox-3-0/431898#431898 – climbage 2010-11-22 20:08:32

回答

3

<select>元素具有「選項」屬性,其值是<option>元素的數組。你應該能夠像使用「孩子」一樣使用它。 (事實上​​,我認爲這是一個好習慣是在,因爲<select>的孩子不一定只是<option>元素。)

+1

我相信這是一個類似數組的對象,稱爲`HTMLOptionsCollection`而不是一個數組,但除此之外,這是現貨。 – 2010-11-22 20:37:50

+1

@Tim對不起 - 我的意思是「數組」在口語意義上,而不是嚴格的Javascript感覺,我想:-) – Pointy 2010-11-22 20:40:14

1

你不應該使用 「的childNodes」 不是 「孩子」? (是的,你可以使用「選項」,但可能知道一個通​​用的解決方案)另一個選項(heh)是select.getElementsByTagName(「OPTION」)。