jQuery - 把字符串当作变量名并返回其值

3

我有多个包含文本字符串的变量,并希望根据点击的元素选择应该显示哪一个。

下面的代码是我正在尝试做的事情的非常简化版本,目前它将.msgBox的innerHTML设置为“A_msg”或“B_msg”,我想要它做的是将其设置为这些变量的值。

    var A_msg = "You clicked A";
    var B_msg = "You clicked B";

    $(".trigger").mouseover(function() {
      var MsgToDisplay = $(this).attr('id')+"_msg";
      $('#msgBox').html(MsgToDisplay);
    });

    <div class="trigger" id="A">Option A</div>
    <div class="trigger" id="B">Option B</div>
    <div id="msgBox"></div>
1个回答

8

您应该使用一个对象:

var messages = {
    A: "You clicked A",
    B: "You clicked B"
};

$(".trigger").mouseover(function() {
  var MsgToDisplay = messages[$(this).attr('id')];
  $('#msgBox').html(MsgToDisplay);
});

您可以编写 messages[someString] 以按名称获取属性的值。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接