【问题标题】:How do I check if the value attribute is equal object key, if its equal take the key value and add a class to it如何检查值属性是否等于对象键,如果相等则取键值并向其添加类
【发布时间】:2019-02-23 00:18:16
【问题描述】:

晚上,伙计们,我有一个基于该下拉列表更改的下拉列表,需要获取该值并检查它是否等于对象键,如果它为真,则获取对象键值并将类添加到它。这是示例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 
    		}
    	}
    }

【问题讨论】:

  • @Taplar 我正在声明对象,以便我访问键并获取值是键匹配 attrValue
  • @Taplar 我很抱歉我删除了双引号
  • @Taplar 是的,这就是我尝试使用的代码
  • 你仍然需要修复你的语法错误
  • 哪个新行? @Taplar

标签: javascript jquery json loops object


【解决方案1】:

如果任务是访问名称取自选择元素的选定选项值的myObject 属性,则发布代码中的算法显得过于复杂。

myObject 定义的问题在示例中得到解决:

  • 在定义 JavaScript 对象时,可以在属性名称周围加上引号,但实践通常只是遵循文本字符串的 JSON 语法要求 - 代码只需要在属性名称周围加上引号,而不是满足标识符的语法。

  • 无论如何,如果在属性名称定义周围加上引号,避免属性名称字符串中的尾随空格 - 它们成为属性名称的一部分,并在尝试调试代码时引起很多混乱. (帖子在“london”、“russia”和“show”中包含尾随空格)

这是一个仅查看 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>

【讨论】:

    猜你喜欢
    • 2020-07-19
    • 2021-04-27
    • 2020-02-04
    • 1970-01-01
    • 2018-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-06
    相关资源
    最近更新 更多