通过动态密钥未定义错误访问对象

时间:2017-04-26 08:12:52

标签: javascript jquery html

我在Javascript中有类似字典的Object,当我想通过页面生成的密钥访问dict时,结果为undefined

如何正确访问该值?



var dict = {
    "red": "yes",
    "blue":  "no"
};

$("#trigger").click(function(){
		alert(dict[$(this).text()]);
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<div id="trigger">
blue
</div>
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:2)

文本中有空格。使用trim()删除它们

&#13;
&#13;
var dict = {
  "red": "yes",
  "blue": "no"
};

$("#trigger").click(function() {
  alert(dict[$(this).text().trim()]);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="trigger">
blue
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

由于有额外的空格,请使用trim()来处理

&#13;
&#13;
var dict = {
    "red": "yes",
    "blue":  "no"
};

$("#trigger").click(function(){
	alert(dict[$(this).text().trim()]);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="trigger">
blue
</div>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

它有一些额外的空间。与trim()一起使用。它会减少空间

&#13;
&#13;
var dict = {
  "red": "yes",
  "blue": "no"
};
$("#trigger").click(function() {
  console.log(dict[$(this).text().trim()])
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="trigger">blue</div>
&#13;
&#13;
&#13;