我错误地编写了一段代码。现在我需要它向我解释,因为它使我的工作困惑:
$(altsValue[i].css('border', '5px solid red'));
'altsValue'是一个对象数组,构造如下:altsValue.push($(this));
'我'是循环中的计数器。
问题是第一行肯定是一个jQuery选择器。然而它确实将有问题的元素的CSS设置为正确的属性!?
有人可以为我揭开神秘面纱吗?
答案 0 :(得分:2)
altsValue[i]
是一个jQuery元素,因为你将$(this)
推入其中。因此它在该元素上设置css
。我不知道它周围的额外$(...)
做了什么......可能没什么。
答案 1 :(得分:0)
执行altsValue.push($(this));
时,您正在将jQuery对象推送到数组中。
这意味着在你的循环中,altsValue[i]
是一个jQuery对象。
然后在该jQuery对象上调用.css('border', '5px solid red')
,该对象设置边框。与大多数jQuery方法一样,.css
返回它操作的jQuery对象。
外部$()
就像$(altsValue[i])
一样,将对象转换为另一个jQuery对象。由于它已经是一个jQuery对象,它只返回相同的对象。
答案 2 :(得分:0)
这是因为你的设置属性。 从技术上讲,你正在执行这个:
var alertsValue = [$(".class#id1"), $(".class#id2")]
altsValue[i].css('border', '5px solid red');
as altsValue [i] === $(this);所以你正在访问一个jQuery对象而不仅仅是一个数组对象。