变量在eq选择器中不可见

时间:2013-12-16 17:52:41

标签: jquery

$('#ulLeft li').click(function () {
x = $(this).index();
change();
});  

function change(){
$('.cAct').removeClass().addClass('cPass');
alert (x);  //works fine
$('#ulLeft li:eq(x)').removeClass().addClass('cAct');  //doesn't work
}

在最后一行x不可见 用一些整数改变x - 工作 有什么建议吗?

3 个答案:

答案 0 :(得分:2)

试试这个:

$('#ulLeft li:eq(' + x + ')').removeClass().addClass('cAct');

由于x是变量,因此您需要针对分配给变量的值检查:eq

答案 1 :(得分:1)

使用$('#ulLeft li:eq('+x+')')代替$('#ulLeft li:eq(x)')

由于x是一个变量,您需要使用字符串连接

或使用.eq()

$('#ulLeft li').eq(x)

答案 2 :(得分:1)

您必须concatenate使用x变量string来实现所需。

尝试,

$('#ulLeft li:eq('+ x +')').removeClass().addClass('cAct'); 

或者使用.eq(index)来进行连接。

$('#ulLeft li').eq(x).removeClass().addClass('cAct');