4

我想动态使用 jQuery :eq(index) 选择器,这意味着我想提供一个变量作为索引并动态选择相应的元素。但它似乎不起作用。我认为这是因为引号。由于这个选择器被用作例如$('ul li:eq(3)'),当我提供一个变量作为索引时,索引可能被视为选择器中字符串的一部分而不是变量. 这样对吗?如何解决此问题并动态选择元素?

4

2 回答 2

6
var index = 5;

以下内容适用于您的示例。

$('ul li:eq(' + index + ')')

但是为了在现代浏览器中获得更好的性能,请使用:

$('ul li').eq(index)

另一个原因.eq():eq()你可以通过 '.eq(-1)' 来获取最后一个元素更好。

来源:http ://api.jquery.com/eq-selector/

于 2012-04-27T00:29:17.203 回答
3

您的怀疑是正确的,字符串中的变量名被视为字符串的一部分,而不是变量名。您想使用字符串连接让 Javascript 知道您的变量是一个变量。它看起来像这样:

$('ul li:eq(' + myVar + ')')

现在,myVar被识别为变量,而不是字符串的一部分。

于 2012-04-27T00:21:44.147 回答