2013-03-15 74 views
0

我有這樣的select語句:如何使用jQuery選擇一個選項時,不顯示選項

 <select id = "selectLanguage" name="language" 
    <option value="any" lang="English">All</option><option value="any" lang="French">Tous</option> 
    <option value="french" lang="English">French</option><option value="any" lang="French">Français</option> 
    <option value="english" lang="English">English</option><option value="any" lang="French">Englais</option> 
    </select> 

在CSS:

*:lang(English), *:lang(French) { 
display: none; 
} 

後用戶會選擇他需要在哪一種語言那個時候我會用show()來描述適當的元素。

在jQuery中可以選擇每個選擇的第一個選項取決於顯示哪種語言?

現在發生的事情是該語言選擇總是顯示所有例如

+0

不可靠。 'display:none'通常意味着元素不在那裏,因爲許多意圖和目的。爲什麼不在以後實際顯示元素時進行選擇? – Brad 2013-03-15 04:00:28

+0

@布拉德,你是什麼意思?是的,我不介意這樣做,我只是不知道如何在jQuery中做到這一點:$ – Kam 2013-03-15 04:01:36

+0

當你做'.show()'時,添加一個也設置'.val()'的部分。 – Brad 2013-03-15 04:02:47

回答

0

要選擇在選擇列表中的第一個選項,嘗試在選擇看着jQuery的.first()

var first = $('select option').first(); 

要選擇所選擇的選項列表中,嘗試尋找在jQuery的:selected Selector

var selected = $('select option:selected'); 

要選擇具有特定屬性的選項,嘗試尋找在jQuery的Attribute Equals Selector

var english = $('select option[lang="English]'); 

結合這些拿到第一個英文選元素,我們得到:

var engSelected = $('select option[lang="English]:selected') 

編輯: 看起來都沒有設立你的HTML屬性正確,試試這個:

<select id = "selectLanguage" name="language"> 
    <option value="any" lang="English">All</option> 
    <option value="any" lang="French">Tous</option> 
    <option value="french" lang="English">French</option> 
    <option value="french" lang="French">Français</option> 
    <option value="english" lang="English">English</option> 
    <option value="english" lang="French">Englais</option> 
</select> 

注:

您還可以通過屬性縮小選擇範圍,就像這樣:

var engEnglish = $('select option[value="english"][lang="English"]'); 
+0

我嘗試過,但是例如在#language選擇中,總是選擇「ALL」,而不管選擇哪種語言。 – Kam 2013-03-15 04:05:06

+0

@Kam,通過多個屬性查看我對HTML選項和jQuery選擇的建議。 – Aiias 2013-03-15 04:11:42

+0

當我在document.ready處理程序中輸入時,沒有任何反應...... $('select option [value =「english」] [lang =「English」]'); – Kam 2013-03-15 04:13:37

0

看到這個

$("#selectLanguage option[lang=French]:visible").first().prop("selected","selected"); 
$("#selectLanguage option[lang=English]:visible").first().prop("selected","selected"); 
+0

我在評論中提到了這個想法......顯然這是無法完成的,因爲這個文件「超出了他們的控制範圍」。 – Brad 2013-03-15 04:08:17

+0

更新的答案是否適合你../ – Anujith 2013-03-15 04:10:41