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

时间:2009-07-02 14:30:33

标签: javascript jquery

我一直试图找出以下代码行不起作用的原因:

$('#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 个答案:

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