Javascript 如何保持变量的值?
我不知道我不能访问Javascript中变量的值Javascript 如何保持变量的值?,javascript,json,http,Javascript,Json,Http,我不知道我不能访问Javascript中变量的值 urli具有如下值:https://cors.io/?https://tb.rg-adguard.net/php/get\u edition.php?version\u id=11&lang=name\u en 但是我试图用console.log(this.namelang)打印name\u lang的值,但是它显示undefine 这是我的代码: var urli = 'https://cors.io/?https://tb.rg-adguar
urli
具有如下值:https://cors.io/?https://tb.rg-adguard.net/php/get\u edition.php?version\u id=11&lang=name\u en
但是我试图用console.log(this.namelang)
打印name\u lang
的值,但是它显示undefine
这是我的代码:
var urli = 'https://cors.io/?https://tb.rg-adguard.net/php/get_edition.php?version_id=' + version_id + "&lang=" + namelang;
$.ajax({
type: "GET",
url: urli,
dataType: 'json',
success: function(response){
var options = '';
console.log(this.namelang);
$.each(response.editions, function() {
options += '<option value="' + this.edition_id + '" style="color: ' + this.color + '">' + this.namelang + '</option>';
});
$('#edition_id').html('<option value="0">- ' + seledition + ' -</option>'+options);
$('#edition_id').attr('disabled', false);
$('#language_id').html('<option>- ' + sellanguage + ' -</option>');
$('#language_id').attr('disabled', true);
$('#arch_id').html('<option>- ' + selachitecture + ' -</option>');
$('#arch_id').attr('disabled', true);
}
});
var-urli='1〕https://cors.io/?https://tb.rg-adguard.net/php/get_edition.php?version_id='+version_id+“&lang=“+namelang;
$.ajax({
键入:“获取”,
url:urli,
数据类型:“json”,
成功:功能(响应){
var选项=“”;
log(this.namelang);
$.each(response.editions,function(){
选项+=''+this.namelang+'';
});
$('edition'u id').html('-'+seledition+'-'+options);
$('edition'u id').attr('disabled',false);
$('#language_id').html('-'+sellanguage+'-');
$('#language_id').attr('disabled',true);
$('#arch_id').html('-'+selachitecture+'-');
$('arch_id').attr('disabled',true);
}
});
您确定您的回复中有namelang
当我检查URL时,我看不到namelang
。
下面是来自urli
{
"editions": [
{
"name_en": "Windows 8.1 Pro + Core",
"color": "green",
"edition_id": "960032"
},
{
"name_en": "Windows 8.1 Pro N + Core N",
"color": "green",
"edition_id": "960033"
}
]
}
在我正确理解您的需求后,我提出了解决方案。您不知道语言名称是什么,它可以是name\u en
或name\u fr
,但name\u
将很常见。对吗?如果是,则以下是解决方案:
此处的工作代码段:
let response={“editions”:[{“name_en”:“windows8.1pro+Core”,“color”:“green”,“edition_id”:“960032”},{“name_en”:“windows8.1pron+Core N”,“color”:“green”,“edition_id”:“960033”};
$.each(response.editions,function(){
console.log(此.edition\u id);
console.log(this.color)
让keysArr=Object.keys(this);
让langname=“name_389;”;
for(此字段中的var键){
if(key.substring(0,langname.length)==langname){
console.log(这个[key]);//您想要的值
}
}
});代码>
这是因为这个
在回调中,只是JQuery xhr对象,如下所示:
响应
对象包含您想要的内容。但是,namelang
不在其中。您给出的示例URL包含两个JSON对象的数组
例如,要访问第一个对象的color
,您需要响应[0]。color
urli
的值是错误的,在同一个对象中有两个https
url@brkurli
是正确的。你试过装吗?它正在运行fineconsole.log(this.namelang);不应该是console.log(response.namelang)?namelang
仅是url中的一个参数如果它必须是与url中相同的变量,那么它只是console.log(namelang)
,前面没有这个。
。嗨,它有相同的结果this.namelang=undefine
namelang
urlyes中仅包含一个参数。这应该是console.log(this.name\u en)
。但是当使用另一种语言时,此列看起来像:name\u国家代码
namelang
是name\u en
,如果语言是英语<如果语言为法语,则code>namelang将更改为name\u fr
。javascript是否存在?该方法看起来像是获取此数组中的第一列?非常感谢。你真棒!