我一直试图找出以下代码行不起作用的原因:
$('#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()
?
答案 0 :(得分:32)
您必须将变量与选择器连接起来:
$("tr:eq("+selected+")");
答案 1 :(得分:4)
您正在这样做,您将实际的字符串"selected"
嵌入到选择器中。您需要使用selected
变量构造一个字符串作为其中的一部分:
$("#cloud-calculator table tr:eq(" + selected + ")").css("color", "red");
答案 2 :(得分:1)
此外,您只需使用'this'对象即可获得所选值。
$('#add-cloud > select').change(function()
{
var rowSelector = '#cloud-calculator table tr:eq(' + parseInt(this.val()) + ')';
$(rowSelector).css("color", "red");
}
答案 3 :(得分:0)
是的,我们可以将变量传递给eq() function
。但您需要禁用 Firebug 。否则它不会工作。
请查看此示例。
var index = 3
$('#sidebar_menu li:eq('+index+')').css({"color":"#050959"});