Как сохранить значения переменной?

Я не знаю, что не могу получить доступ к значениям переменной в Javascript.

urli имеет такие значения, как: https://cors.io/?https://tb.rg-adguard.net/php/get_edition.php?version_id=11&lang=name_en

Но я попытался распечатать значения name_lang с помощью console.info(this.namelang), но он показывает 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.info(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);   
  }
});

значение urli неверно, есть два https в одном URL-адресе

brk 02.05.2018 07:15

@brk urli правильный. Вы пробовали его загрузить? Он работает нормально

Vikasdeep Singh 02.05.2018 07:16

console.info (this.namelang); не должно быть console.info (response.namelang)?

Gaston K 02.05.2018 07:22
namelang только параметр в URL
vanloc 02.05.2018 07:23

Если это должна быть та же переменная, что и в URL-адресе, то это просто console.info(namelang) без this. перед ним.

t.niese 02.05.2018 07:25
namelang - это name_en в случае, если язык английский. namelang изменится на name_fr, если язык - Франция. Существовал ли javascript, чтобы метод выглядел как получение первых столбцов в этом массиве?
vanloc 02.05.2018 07:35

но namelang находится внутри объекта (того же объекта, где выполняется вызов ajax)? тогда вам нужно будет сделать this = this перед вводом вызова ajax, а затем сделать это. namelang

Gaston K 02.05.2018 07:36
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
7
62
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы уверены, что у вас в ответе namelang ???

Я не вижу namelang, когда проверял URL. Ниже приведен ответ от 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_en или name_fr, но name_ будет обычным. Верно? Если ДА, то решение ниже:

Фрагмент рабочего кода здесь:

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.info(this.edition_id);
  console.info(this.color)

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

  for (var key in this) {
    if (key.substring(0, langname.length) === langname) {
      console.info(this[key]); // your desired value
    }
  }
});
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

Привет, результат такой же. this.namelang = undefine.

vanloc 02.05.2018 07:21
namelang только параметр в url
vanloc 02.05.2018 07:22

да. это должен быть console.info(this.name_en). Но при другом языке. Эти столбцы выглядят так: name_the_country_code.

vanloc 02.05.2018 07:27
namelang - это name_en в случае, если язык английский. namelang изменится на name_fr, если язык - Франция. Существовал ли javascript, чтобы метод выглядел как получение первых столбцов в этом массиве?
vanloc 02.05.2018 07:35

Большое спасибо. Ты восхитителен!

vanloc 02.05.2018 09:20

Это потому, что this внутри этого обратного вызова - это просто объект JQuery xhr, как показано здесь:

Объект response содержит то, что вы хотите. Но namelang не внутри этого. В приведенном вами примере URL-адреса есть массив из двух объектов JSON.

Чтобы получить доступ, скажем, к color первого объекта, вы должны взять response[0].color.

Другие вопросы по теме