为了账号安全,请及时绑定邮箱和手机立即绑定

jQuery中.css()的参数怎么传递一个变量+字符串的属性值

jQuery中.css()的参数怎么传递一个变量+字符串的属性值

芜湖不芜 2019-03-22 18:15:59
原代码:$bars[i].style.top =160 - height + sinTable[(ang + (i * freq)) & 4095] * height + 'px';$bars[i].style.height = height2 + 'px';但是觉得.style好像很少见,所以打算换成用.css来实现:var style={    top:160 - height + sinTable[(ang + (i * freq)) & 4095] * height + 'px',    height:height2 + 'px'};$bars[i].css(style);为了方便直接传递一个变量(不用加引号),就直接定义了一个变量传参。但没有任何效果。单独定义变量分别传入也不行。想知道如果要用.css()来实现的话应该怎么传入参数
查看完整描述

4 回答

?
慕斯709654

TA贡献1840条经验 获得超5个赞

最后一句改成:
$bars.eq(i).css(style);

有道是,“文档看的少,风吹就要倒。”


查看完整回答
反对 回复 2019-03-24
?
蛊毒传说

TA贡献1895条经验 获得超3个赞

楼上说的是对的。

实际上,jQuery 在这里应用了设计模式中的“享元模式”,即用一套共享的数据降低大量重复性内容的内存和运算损耗。所以 $('.bar') 实际上取出来了所有 DOM 节点,然后返回的 $bars 并非 DOM Collection,而是一个 jQuery 实例,它是一个类数组对象,包含很多方法,比如 .css(attr, value)

所以你应该用 $bars.css(style)。

另外,理论上 $bars[i] 会返回一个 DOM 节点,你直接调用 .css() 方法会报错,建议你养成“不正常先看控制台”的习惯,对将来会有很大帮助。


查看完整回答
反对 回复 2019-03-24
  • 4 回答
  • 0 关注
  • 897 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信