jQuery:将变量传递给:eq()不起作用

我一直试图找出为什么以下代码行不起作用:

$('#add-cloud > select').change(function() { var selected = parseInt($('#add-cloud select option:selected').val()); $("#cloud-calculator table tr:eq(selected)").css("color", "red"); }); 

如果我改变:eq(selected):eq(4)例如:eq(4) – 工作正常。 如何将变量作为参数传递给:eq()

您必须将变量与选择器连接起来:

 $("tr:eq("+selected+")"); 

你正在这样做,你在选择器中嵌入了实际的字符串"selected" 。 您需要使用selected变量构造一个字符串作为其一部分:

 $("#cloud-calculator table tr:eq(" + selected + ")").css("color", "red"); 

此外,您可以简单地使用’this’对象来获取seleted值。

 $('#add-cloud > select').change(function() { var rowSelector = '#cloud-calculator table tr:eq(' + parseInt(this.val()) + ')'; $(rowSelector).css("color", "red"); } 

是的,我们可以将变量传递给eq() function 。 但是你需要禁用Firebug 。 否则它不会工作。

请查看此示例。

 var index = 3 $('#sidebar_menu li:eq('+index+')').css({"color":"#050959"});