【问题标题】:Passing variable into Map key Jquery将变量传递到 Map 键 Jquery
【发布时间】:2015-08-26 22:09:20
【问题描述】:

我正在做这个网页,我在我的请求中传递了一个包含地图的属性。
我正在使用 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 操作为空

当我直接在“单词”映射键上传递字符串时:

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

我可以得到手术。操作值为“替换”。我尝试了以下方法:

var t = 'that';

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

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

【问题讨论】:

  • 经过多次测试,我意识到如果我们想在地图的键中传递一个变量,它必须是请求变量或页面变量。如果我尝试以下操作: 和我做 var operation = '${regle.words[mot].operation}';我获得了所需的结果(“替换”)。现在的问题是如何在 JSTL 集合的值上传递一个 javaScript 的变量。
  • 还有另一种可能的解决方案是转换 '${regle.words[mot].operation}';将 mot 替换为其值 var newString = 'Trying' + mot 的字符串。这会给我 var newString = 'trying that'。我试过函数 eval("String");但是还没有结果..

标签: javascript jquery dictionary


【解决方案1】:

我认为你想要做的是:

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

例如,如果regle.words[t].operation 给您字符串“foo”,那么operation 中的结果将是字符串“${foo}”。

但是,如果您真正想要的是 operation 是字符串 "${regle.words['that'].operation}" 那么您应该使用以下内容

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

【讨论】:

  • 谢谢你的回答其实是:'${regle.words['that'].operation}' 谁给了我一个字符串。当我尝试你的答案时,我会在警报中得到“+ regle.words[t].operation +”,但我应该得到归因于单词“t”的操作作为键传递给地图“words”,这是一个字符串
  • 嗨,我想我可能解释错了我的问题。实际上,当我评估例如'$ {regle.words ['that'].operation}'时,结果是一个字符串“替换”。如果我做 var t = 'that' 并且我现在评估 '${regle.words[t].operation}' 结果是一个空字符串。你的第二个答案给了我与第二个评估相同的结果,它是一个空字符串
  • 我也尝试了以下但结果相同.. var t_str = "'" + t + "'"; var operation = '${regle.words[t_str].operation}'; @Jamiec 无论如何感谢您的帮助
【解决方案2】:

所以在互联网上看了几个小时后,我意识到我想做的事情不能混为一谈。我正在尝试将 JavaScript 变量传递到 EL 中的 JSP 页面。这无法完成,如果我没记错的话,唯一的方法是通过请求中的属性。我所做的可能不是很干净,但这是我解决问题的唯一方法。我将我的变量放入一个隐藏的输入中,我在我的发布请求中传递了它。然后我可以随心所欲地使用它。无论如何感谢您的帮助。

【讨论】:

    猜你喜欢
    • 2016-11-09
    • 2021-12-29
    • 1970-01-01
    • 1970-01-01
    • 2017-05-30
    • 2014-12-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多