我有这个功能:
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 ???
答案 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')]);