2011-06-17 96 views
0

我有一個簡單的小組合框在我的網頁上:的javascript:火狐的selectedIndex對組合框

<select id="famNum" onchange="familySize()"> 
     <option value="0">0</option> 
     <option value="1">1</option> <!-- etc --> 
</select> 

如果我使用:

famNum.selectedIndex = 0; 

它工作在Safari罰款,但不能在Firefox。我什至嘗試使用jQuery:

$('#famNum').selectedIndex = 0; 

但仍然firefox不會這樣做。我怎樣才能得到這個在Firefox中工作?它一直說「famNum沒有定義」

回答

1

只有一些瀏覽器將具有id的所有元素添加到窗口對象。這是非標準行爲,例如Firefox不會那樣做。要訪問元素,您應該使用getElementById方法:

document.getElementById('famNum').selectedIndex = 0; 

如果你想使用jQuery,調用不返回的元素,它返回一個jQuery對象。您可以使用jQuery的方法來設置屬性:

$('#famNum').attr('selectedIndex', 0); 

,或者你可以得到元素了jQuery對象的:

$('#famNum')[0].selectedIndex = 0; 
+0

謝謝,我不知道如何在jQuery中正確地做到這一點。 – solerous

+0

它應該是getElementById而不是GetElementById。 它不會讓我編輯只有一封信,所以只要讓大家知道他們面臨任何問題。 –

+0

@YashSingla:當然你是對的。我修好了它。 – Guffa

0

Internet Explorer開始將公開帶有ID或名稱的元素作爲全局對象。 Safari似乎採用了這種行爲。使用getElementById()可以在每個瀏覽器上運行。

document.getElementById("famNum").selectedIndex = 0; 
+0

感謝,原來如此! – solerous