首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何保存变量的值?

如何保存变量的值?
EN

Stack Overflow用户
提问于 2018-05-02 05:13:01
回答 2查看 70关注 0票数 1

我不知道我不能访问Javascript中变量的值。

urli的值如下:https://cors.io/?https://tb.rg-adguard.net/php/get_edition.php?version_id=11&lang=name_en

但是我试着用console.log(this.namelang)打印console.log(this.namelang)的值,但是它显示了undefine

这里我的代码:

代码语言:javascript
运行
复制
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);   
  }
});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-05-02 05:18:22

你确定你的答复中有namelang吗?

当我检查网址时,我看不到namelang。下面是来自urli的响应

代码语言:javascript
运行
复制
{
  "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_enname_fr,但是name_将是常见的。对吗?如果是,下面是解决办法:

这里的工作代码片段:

代码语言:javascript
运行
复制
let response = {"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"}]};


$.each(response.editions, function() {

  console.log(this.edition_id);
  console.log(this.color)

  let keysArr = Object.keys(this);
  let langname = "name_";

  for (var key in this) {
    if (key.substring(0, langname.length) === langname) {
      console.log(this[key]); // your desired value
    }
  }
});
代码语言:javascript
运行
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

票数 1
EN

Stack Overflow用户

发布于 2018-05-02 05:28:14

这是因为在回调中的this只是JQuery xhr对象,如下所示:

response对象包含所需的内容。但namelang不在里面。您提供的示例URL包含一个由两个JSON对象组成的数组。

要访问第一个对象的color,您可以使用response[0].color

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50127513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档