jQuery - 用整数连接字符串以创建预先存在的变量

时间:2016-03-29 18:14:59

标签: javascript jquery

所以我想说我有一个变量slide1。

var slide1 = $('#slide1');

如何将一个字符串(例如'slide)与一个整数连接起来使其等于并且表现得像上面的变量一样,slide1?

showThis('slide' + 1);

Here is my fiddle,因此您可以看到我的问题/混乱的缩短版本。正如您所看到的,连接的结果并没有像我期望的那样隐藏。

我是否试图做一些完全禁忌的事情?

提前致谢!

5 个答案:

答案 0 :(得分:3)

var slide1 = $('#slide1');
var button = $('#button');

button.click(function() {
  showThis('slide' + 1);
});

function showThis(thisSlide) {
  alert(thisSlide);
  $("#" + thisSlide).hide();
}

答案 1 :(得分:1)

如果你真的想这样做,你需要索引到全局窗口对象。

var slide1 = $('#slide1');
var button = $('#button');

button.click(function() {
  showThis(window['slide' + 1]);
});

function showThis(thisSlide) {
  alert(thisSlide);
  $(thisSlide).hide();
}

然而我会像其他海报一样回应

答案 2 :(得分:0)

您的showThis()函数需要一个Jquery对象,而您提供的是一个字符串。所以你的代码应该是这个

showThis($('#slide' + 1));

答案 3 :(得分:0)

您可以使用字符串访问对象的属性,但不能访问真正的变量。 就像,你有一个对象

StartPreviewToCustomSinkIdAsync

您可以使用类似这样的字符串访问slide1

var slide = {
  slide1: $('#slide1'),
  var button = $('#button'),
}

您尝试的方式不是访问变量的有效方法。

答案 4 :(得分:-1)

你有什么理由不能使用数组吗?例如:

var slides = [];
slides[0] = $('#slide0');
slides[1] = $('#slide1');
//etc
showThis(slides[1]);

甚至:

var slides = [];
for(var i = 0; i< 10; i++){
    slides[i] = $('#slide' + i);
}
showThis(slides[1]);