0

我在搞乱数组并且有一个非常基本的问题。假设我有这个 html 标记:

<div id="1" style="width: 50px; height: 50px; background-color: #ff0; display: none;"></div>
<div id="2" style="width: 50px; height: 50px; background-color: #ffc; display: none;"></div>
<div id="3" style="width: 50px; height: 50px; background-color: #fcc; display: none;"></div>

并创建以下数组:

var testArr = ['$("#1")', '$("#2")', '$("#3")'];

为什么我不能执行以下功能来工作:

 function showArr() { testArr[2].show(); 
  };
 showArr();

因此不应该#3显示?

谢谢

4

2 回答 2

3

不,这是行不通的,因为您正试图在字符串上运行函数。

testArr[2]'$("#3")'。不是 jQuery 对象:它是一个包含代码的字符串。所以testArr[2].show()意思'$("#3")'.show()。由于字符串没有show方法,因此这是行不通的。

您需要存储 jQuery 对象,而不是字符串:

var testArr = [$("#1"), $("#2"), $("#3")];
于 2013-06-11T22:37:35.553 回答
1

首先,ID 不能以数字开头。其次,不要将其存储为字符串,只需存储对象即可。

testArr = [ $('#item-1'), $('#item-2') ];
于 2013-06-11T22:35:51.480 回答