如何将此数组传递给我的JQuery函数?

时间:2013-11-21 21:51:48

标签: jquery

我有这个功能:

function activateControlFlow(arrayControl) {
    $.each(arrayControl, function(){
        console.log(this);
        $(this).css({color:'#FFF', cursor: 'pointer'});  
    }); 
}

我不明白为什么如果我只将一个项目传递给此函数,则将该项目作为数组打印出来。这是我的例子:

activateControlFlow(["a#nexth"]);

并在控制台中打印出来:

String {0: "a", 1: "#", 2: "n", 3: "e", 4: "x", 5: "t", 6: "h"}

WHY ???

2 个答案:

答案 0 :(得分:2)

问题是您正在使用this而不是函数的参数,如jQuery API(http://api.jquery.com/jQuery.each/)中所定义的

function activateControlFlow(arrayControl) {
    $.each(arrayControl, function(index, value){
        console.log(value);
        $( value ).css({color:'#FFF', cursor: 'pointer'});  
    }); 
}

答案 1 :(得分:0)

所以我使用'a#nexth'代替$('a#nexth'),显然我发送的是字符串而不是Object本身。

所以它应该是这样的:

activateControlFlow([$('#nexth')]);