我有一个选择:
<select id="selectlang">
<option value="en" selected>English</option>
<option value="de">Deutsch</option>
</select>
现在,我想通过检查浏览器的语言来设置默认值。
var lang = window.navigator.userLanguage || window.navigator.language;
如何使用jQuery修改选择?
答案 0 :(得分:4)
答案 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)
答案 6 :(得分:0)
您有两个问题需要解决:
window.navigator.language
可以返回的多个可能值。select
选项。解析语言字符串
第一个问题需要一个(非常轻微)更复杂的解决方案,而不是测试lang == "en"
。
英语可以用en
表示,但它也可以是en-us
(美国英语),en-gb
(英国)等。同样德语可以是de
,de-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));