将变量传递给Map键Jquery

时间:2015-06-11 09:36:27

标签: javascript jquery dictionary

我正在做这个网页,我在其中传递一个包含Map的属性。
我正在使用Jquery根据键获取此映射的值。
我有以下代码:

jQuery("font#clickable").click(function() {
var t = $(this).text(); 
var operation = '${regle.words[t].operation}';
alert(operation);
});

我将点击包含的文本并将其存储在“t”变量中。

以下是不同元素的描述:

  • “regle”:请求中的属性。
  • “words”:“String,Word”的地图。
  • “Word”包含不同的属性,如文本,操作,颜色..(所有字符串)

问题是当我尝试根据单击的单词获取 操作 的值时(var operation ='$ {regle.words [t] .operation }')我在alert()中得到一个空结果。

var操作为空

当我直接传递“words”地图键上的字符串时:

var operation = '${regle.words['that'].operation}';

我可以接受手术。然后操作值是“替换”。我尝试过以下方法:

var t = 'that';

但同样的结果我得到一个空字符串。问题是我在键上传递变量而不是String。

有没有人知道如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

我认为你要做的是:

var operation = '${' + regle.words[t].operation + '}';

例如,如果regle.words[t].operation给你字符串" foo"那么operation中的结果就是字符串" $ {foo}"。

但是,如果您真正想要的是operation成为字符串" $ {regle.words ['那']。操作}"那么你应该使用以下

var operation = "${regle.words['" + t + "'].operation}";

答案 1 :(得分:0)

因此,在互联网上看了好几个小时后,我意识到我想做的事情不能混淆。我试图将JavaScript变量传递到EL中的JSP页面。这是不可能完成的,如果我没有错,唯一的方法是通过请求中的属性。我所做的可能不是很干净但是我能解决问题的唯一方法。我把我的变量放入一个隐藏的输入中,我在我的帖子请求中传递。然后我可以按照我的意愿使用它。无论如何,谢谢你的帮助。