Javascript 使用jQuery在更改后保留元素的值
为了支持国际化,我编写了从lang select下拉列表更改URL的代码Javascript 使用jQuery在更改后保留元素的值,javascript,jquery,internationalization,Javascript,Jquery,Internationalization,为了支持国际化,我编写了从lang select下拉列表更改URL的代码 $(document).ready(function(){ var sel = document.getElementById('lang-select'); sel.onchange = function(){window.location.replace($('#lang-select').val());}; }); 上面的代码工作正常,它将URL从http://0.0.0.0:3000/fr 到ht
$(document).ready(function(){
var sel = document.getElementById('lang-select');
sel.onchange = function(){window.location.replace($('#lang-select').val());};
});
上面的代码工作正常,它将URL从http://0.0.0.0:3000/fr 到http://0.0.0.0:3000/en.
现在我想保留更改后的值,但没有成功。我已经写了下面的代码。我不知道为什么它错了/不起作用
function langSelect(){
var available_languages = {
"en":"English",
"de":"Deutsch",
"ru" :"Россию",
"fr" : "Française"
};
var languageInUrl= document.URL.split("/")[3];
for(var shortLanguage in available_languages){
if(shortLanguage === languageInUrl) {
var langaugeOptionArray = $("#lang-select>option");
for(var i = 0 ; langaugeOptionArray.length > i ; i++){
if(langaugeOptionArray[i].label === available_languages[shortLanguage]){
langaugeOptionArray[i].selected = true;
return;
}
}
}
}
}
请告诉我上面的代码中有什么错误,因为我所做的不是什么新鲜事,请分享克服这种情况的最佳实践
目前,我正在使用后端来完成这项工作
$(function() {
$('#lang-select').on("change",function(){
window.location.replace($(this).val());
});
});
function langSelect(){
var available_languages = {
"en":"English",
"de":"Deutsch",
"ru" :"Россию",
"fr" : "Française"
};
var languageInUrl= document.URL.split("/")[3];
var lang = available_languages[languageInUrl];
if (lang) {
var langaugeOptionArray = $("#lang-select>option");
langaugeOptionArray.each(function() {
if($(this).text() === lang){
$("#lang-select").val(lang);
return false;
}
});
}
}
我相信我们甚至可以做到
if (lang) {
var opt = $("#lang-select").find('option[text="'+lang+'"]').val();
if (opt) $("#lang-select").val(opt);
}
祝你好运为什么不使用jQuery选择/绑定事件?最上面的代码是由另一个开发人员编写的,我不想碰他的代码。所以我自己编写了codelangSelect。无论如何,请分享你的方法。@mplungjan因为它会引发错误。TypeError:对象的属性“text”不是函数。您的代码是干净和优化的。我喜欢var lang=available_languages[languageInUrl];这是一种方法。谢谢