console.log($('.square').css('background-color')); // red
console.log($('.square')[1].css('background-color')); // error
console.log($('.square')[2].css('background-color')); // error
如何通过jquery检索绿色和蓝色方块的属性?
答案 0 :(得分:4)
您应该使用eq
:
console.log($('.square').css('background-color'));
console.log($('.square').eq(1).css('background-color'));
console.log($('.square').eq(2).css('background-color'));
问题是css
是一个jQuery对象的方法。但是,如果您使用括号表示法来访问单个元素,那么您将获得真实的"那些,没有任何jQuery包装。
或者,您可以:
再次在jQuery对象中包装它(价格昂贵,不推荐):
$($('.square')[1])
使用vanilla-js获取样式:
$('.square')[1].style.backgroundColor; // Only to get inline styles
getComputedStyle($('.square')[1]).backgroundColor;
答案 1 :(得分:3)
使用eq()
:
console.log($('.square').eq(1).css('background-color'));
方括号从jQuery集合中检索DOM节点,而不是在该索引点处的jQuery对象。
参考文献:
eq()
。答案 2 :(得分:1)
$($('.square')[1]).css('background-color')
.css需要一个jquery对象,[1]
给你一个DOM对象,所以你必须使用$()
将它转换为jquery对象(不确定这是否是正确的术语)
答案 3 :(得分:0)
另一种选择似乎是:
console.log($($('.square')[0]).css('background-color')); // red
console.log($($('.square')[1]).css('background-color')); // green (dark)
console.log($($('.square')[2]).css('background-color')); // blue