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"});