我正在建立一个投资组合网站。用户可以使用左箭头和右箭头单击我的工作。左箭头和右箭头将变量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;等的字符串...而不是变量本身的值。
感谢您的帮助!
答案 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')
})