我想动态使用jQuery:eq(index)选择器,这意味着我想提供一个变量作为索引并动态选择相应的元素。但似乎它不起作用。我认为这是因为引号。因为这个选择器被用作例如$('ul li:eq(3)'),当我提供一个变量作为索引时,索引可能被视为选择器中字符串的一部分而不是变量。这样对吗?如何解决此问题并动态选择元素?
答案 0 :(得分:6)
var index = 5;
以下内容适用于您的示例。
$('ul li:eq(' + index + ')')
但是为了在现代浏览器中获得更好的性能,请使用:
$('ul li').eq(index)
.eq()
优于:eq()
的另一个原因是您可以通过'.eq(-1)'来获取最后一个元素。
答案 1 :(得分:3)
您的怀疑是正确的,字符串中的变量名称被视为字符串的一部分,而不是变量名称。你想使用字符串连接让Javascript知道你的变量是一个变量。它看起来像这样:
$('ul li:eq(' + myVar + ')')
现在,myVar
被识别为变量,而不是字符串的一部分。