Как выбрать объявленную переменную из тега скрипта с помощью JavaScript

#javascript #html #jquery #django #ajax

Вопрос:

Не могли бы вы, пожалуйста, помочь мне? У меня есть четыре ниже объявленные переменные внутри тега сценария ( на html-странице. Они в основном генерируются фолием в python.Я хотел бы выбрать последний из другого файла js без успеха. Я попробовал это

 window.onload = function() {
    for (var  name in this){
      if(Object.keys({name})[0].includes("layer"){
          alert (name)
      }
    }

};
 

Вот объявленные переменные внутри тега сценария на html-странице

 var circle_f3a483b3a7ba46748ac935d3995f4f6b = L.circle(
            [-16.0, 0.0]
        ).addTo(feature_group_1c28eff59e394734be54cf676a09eae1);
    

var circle_a01d1791063145b18b439bd7687bc97f = L.circle(
            [-11.3137, 11.3137],
        ).addTo(feature_group_1c28eff59e394734be54cf676a09eae1);
    

var layer_control_aec3ac6e0e424b74a19b4c9d1c78ffeb = {
            base_layers : {
            },
            overlays :  {
                "Roads" : geo_json_cae0ea33c63e4c438678d293e5c32c0d,
                "Intersections" : feature_group_1c28eff59e394734be54cf676a09eae1,
            },
        };
 

Комментарии:

1. Похоже, ты слишком глубоко погружаешься в свои поиски. Имя будет layer_control_… так что вам нужно только if (name.includes("layer") , чтобы я использовал name.match(/layer_control_[a-fd] /) для более точного выбора.

2. Спасибо, это работает. Я получаю строковый тип. Как я могу получить значение ключа наложения?

3. Все глобальные переменные хранятся в окне. window[name] или внутри вашей функции this[name]

Ответ №1:

 if (name.includes("layer")) {
 

Это бы сработало.

 var circle_f3a483b3a7ba46748ac935d3995f4f6b = {
  foo: "bar"
};
var circle_a01d1791063145b18b439bd7687bc97f = {
  foo: "bar"
};
var layer_control_aec3ac6e0e424b74a19b4c9d1c78ffeb = {
  foo: "bar"
};

window.onload = function() {
  for (var name in this) {
    if (name.includes("layer")) {
      console.log(name , "=" , this[name])
      for(let key in this[name]) {
        console.log('key', key, 'value', this[name][key])
        
      }
    }
  }

}; 

Комментарии:

1. Спасибо, я пробовал это раньше, но у меня ничего не вышло

2. но это работает, попробуйте фрагмент. загружаются ли эти переменные после window.onload?

3. Пожалуйста, помогите мне! Как я могу получить значение словаря?

4. Я обновил свой ответ, пожалуйста, посмотрите. это то, чего ты хочешь?

5. Спасибо, это дает мне много вещей, кроме словарных значений, связанных с ключами: «Дороги» и «Перекрестки».