如何使用jQuery选择一个选项时,不显示选项

问题描述:

我有这样的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

要选择在选择列表中的第一个选项,尝试在选择看着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

看到这个

$("#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