Как мне проверить, равен ли атрибут value ключу объекта, если он равен, взять значение ключа и добавить к нему класс - PullRequest
0 голосов
/ 19 сентября 2018

Вечерние парни, у меня есть выпадающий список, основанный на изменении этого выпадающего списка, нуждающегося в получении значения и проверке, равняется ли оно ключу объекта, если его истинное значение принимает значение ключа объекта и добавляет к нему класс.Вот пример кода JS.

    var attrValue = "london";
    var myObject = {"london ":
    {"show ":"#london1 #london2 "}, 
    "russia ": 
   {"show ":"#moscow1, #moscow2"}};
    
    function mytest(myObject, key) {
    	for (var i = 0; i < myObject.length; i++) {
    		var keys = myObject.key[i];
    		if (attrValue == keys) {
    			//get London keys and use value to add show or hide class 
    		}
    	}
    }

1 Ответ

0 голосов
/ 20 сентября 2018

Алгоритм в размещенном коде выглядит слишком сложным, если задача состоит в том, чтобы получить доступ к свойству myObject, имя которого взято из значения выбранного параметра выбранного элемента.

Проблемы с определениями myObject решаются впример:

  • Кавычки могут быть помещены вокруг имен свойств при определении объектов JavaScript, , но практика часто просто следует требованиям синтаксиса JSON для текстовых строк - код требует только кавычкивокруг имен свойств, которые не соответствуют синтаксису идентификаторов.

  • Если кавычки в любом случае помещаются вокруг определений имени свойства, избегайте конечных пробелов в строке имени свойства - они становятся частью имени свойства и вызывают много путаницыпри попытке отладки кода.(Пост содержит пробелы в словах "Лондон", "Россия" и "Шоу")

Вот пример, который рассматривает только собственные свойства myObject:

"use strict";

var myObject = {
    london: { show: "#london1 #london2"}, 
    russia: { show: "#moscow1, #moscow2"}
};

document.getElementById("dropdown")
  .addEventListener("change",
    function() {
      var key, selector, option;
      option = this.options[this.selectedIndex];
      key = option.value;
      if(  myObject.hasOwnProperty(key)) {
        selector = myObject[key].show;
        console.log( "do something with " + selector);
      }
      else {
        console.log("No key found for " + option.text);
      }
    }, false);
<select id="dropdown">
   <option value="london">London</option>
   <option value="russia">Russia</option>
   <option value="problem">Problem</option>
</select>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...