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

我不知道我不能访问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-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@brk
urli
是正确的。你试过装吗?它正在运行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是否存在?该方法看起来像是获取此数组中的第一列?非常感谢。你真棒!