如何使用jQuery更改选择选择

时间:2013-05-09 12:23:39

标签: javascript jquery html

我有一个选择:

<select id="selectlang">
  <option value="en" selected>English</option>
  <option value="de">Deutsch</option>
</select>

现在,我想通过检查浏览器的语言来设置默认值。

var lang = window.navigator.userLanguage || window.navigator.language;

如何使用jQuery修改选择?

7 个答案:

答案 0 :(得分:4)

你可以这样做:

$("#selectlang").val(lang.split('-')[0]);

Fiddle

答案 1 :(得分:2)

var lang = window.navigator.userLanguage || window.navigator.language;

if(lang === 'en-US')
    $('#selectlang').val('en');

另外值得注意的是,IE(当然)doesn't support this property

答案 2 :(得分:1)

您可以使用jQuery更改选择值,如下所示:

$("#selectlang").val(lang);

但很可能您需要验证var lang = window.navigator.userLanguage || window.navigator.language;

的值

答案 3 :(得分:1)

您可以使用jQuery's val() function选择选择框的值:

$("#selectlang").val("en");

答案 4 :(得分:1)

以下代码适用于您,但您必须更改选项kile的值 en =&gt; en-US,因为var lang = window.navigator.userLanguage || window.navigator.language;将返回en-US格式的语言代码

$("#selectlang").val(lang );

答案 5 :(得分:0)

$('option:selected').attr('selected', false);
$('option[value="' + lang + '"]').attr('selected', true)

http://jsfiddle.net/nkVmV/2/

答案 6 :(得分:0)

您有两个问题需要解决:

  1. 您需要能够解析window.navigator.language可以返回的多个可能值。
  2. 您需要相应地更改select选项。
  3. 解析语言字符串

    第一个问题需要一个(非常轻微)更复杂的解决方案,而不是测试lang == "en"

    英语可以用en表示,但它也可以是en-us(美国英语),en-gb(英国)等。同样德语可以是dede-ch(瑞士),de-at(奥地利)等Here's a helpful list of potential values

    如果您只是测试lang的原始值,那么它就不会起作用。最佳解决方案似乎是使用lang仅测试lang.substr(0, 2)的前两个字符。

    调整#selectlang

    的所选选项

    正确解析语言字符串后,您可以使用option更改选定的val()

    将两者放在一起

    var lang = window.navigator.userLanguage || window.navigator.language;
    
    $("#selectlang").val(lang.substr(0, 2));