如何使用Jquery将元素设置为变量的值

时间:2016-07-11 07:00:02

标签: javascript jquery html

我正在建立一个投资组合网站。用户可以使用左箭头和右箭头单击我的工作。左箭头和右箭头将变量x设置为1,2或3,并通过函数" workSelection"发送它。当用户点击工作时,我希望它更新工作标题以匹配所选作品的变量(1,2或3)。

var workTitle1 = "Work 1";
var workTitle2 = "Work 2";
var workTitle3 = "Work 3";

function workSelection(x)
{
      var loop = 1;
      while (loop < 4)
        {
          if (x == loop)
            {
                $("#workTitle").html('workTitle'+loop);
            }
          loop++;
        }
}

如何更改$(&#34;#workTitle&#34;)。html(&#39; workTitle&#39; + loop );显示workTitle1,workTitle2,workTitle3的值。相反,它现在只显示一个值为&#34; workTitle1&#34;等的字符串...而不是变量本身的值。

感谢您的帮助!

5 个答案:

答案 0 :(得分:3)

您可以使用window['workTitle'+ loop]

var workTitle1 = "Work 1";
var workTitle2 = "Work 2";
var workTitle3 = "Work 3";

function workSelection(x)
{
    $("#workTitle").html(window['workTitle'+ x]);
}

修改 没有必要循环,我刚回答了如何更改$("#workTitle").html('workTitle'+loop)以显示workTitle1的值的问题:)

答案 1 :(得分:1)

你的逻辑比它需要的更复杂。如果将多个字符串更改为全部存储在数组中,则可以通过索引直接检索它们,而不是循环遍历它们。试试这个:

var workTitles = [ "Work 1", "Work 2", "Work 3" ];

function workSelection(x) {
    $("#workTitle").html(workTitles[x-1]);
}

答案 2 :(得分:0)

更简单的方法

    Linkify.addLinks(dataView, Linkify.WEB_URLS);
    dataView.setLinksClickable(true);

答案 3 :(得分:0)

这是您想要数组而不是单个变量的地方。虽然使用JavaScript 可能使用单个变量(使用5,你应该避免,或者通过使它们成为全局变量并使用它们成为eval的属性的事实),没理由。

这是阵列版本。请注意,索引从0开始:

window

我认为没有必要使用循环:

var workTitles = [
    "Work 1",
    "Work 2",
    "Work 3"
];
function workSelection(x) {
    for (var loop = 0; loop < workTitles.length; ++loop) {
        if (x == loop + 1) { // Note the comparison, since `x` appears to be 1-based
            $("#workTitle").html(workTitles[loop]);
        }
        loop++;
    }
}

答案 4 :(得分:0)

使用数组

$('.my-login-button').on('click', function() {
$(this).addClass('clicked')
})