将变量放在Jquery选择器中

时间:2009-12-18 19:46:41

标签: javascript jquery

我只是想动态输入正确计算的索引,所以我知道我的变量的值不是问题,但它不起作用:

我的变量'parentIndex'存储我想在下面选择的范围的索引。我测试了这个变量并返回了正确的值。

$(“。DropDownMenu span:eq(”+ parentIndex +“)”)

这不是将变量放入jquery选择器的正确方法吗?我发现的所有例子都使用这种格式,我缺少什么?

(整个函数,对于上下文:)

        $("span input:radio").click(function() {
        if (($(this).is(":checked")) == true) {
            var elem = $(this);
            var parent = $(this).parent();
            var aunts = parent.parent().children();
            var parentIndex = aunts.index(parent);
            var position = elem.position();
            var topValue = position.top;
            topValue = topValue - 9;
            $(".DropDownMenu").css({ "top": "-" + topValue + "px" });
            $(".DropDownMenu span").css("background-image", "none");
            parent.css({ "background": "#f3f1e7 url(assets/images/branding/DropDownArrow.gif) no-repeat right" });
            $(".DropDownMenu span:eq("+parentIndex+")").css({ "background": "#f3f1e7 url(assets/images/branding/DropDownArrow.gif) no-repeat right" });

        }
    });

2 个答案:

答案 0 :(得分:1)

尝试这种方式:

$(".DropDownMenu span").eq(parentIndex)

您可以在docs here

中找到有关详细信息

但是,您的工作方式应该是这样,请确保使用FireBug进行测试,并尝试使用不太复杂的功能来测试它的功能。


如果JS有类似sprintf之类的东西,你可以这样做:$(".DropDownMenu span:eq(%parentIndex)"

但这只是一厢情愿的想法。

答案 1 :(得分:0)

您是否已调试并查看了parentIndex的类型?

尝试这样做:

$('.DropDownMenu span:eq('+ parseInt(parentIndex) +')');