You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么jQuery的attr()设置多个重复style属性时仅最后一个生效?

问题原因
  • JavaScript 对象的键具有唯一性:你传入 attr() 的配置对象中重复声明了3次 style 键,在JS语法中,重复的对象键会被后续赋值覆盖,最终该对象仅保留最后一次赋值的 style: 'border-style:dotted',所以只有边框样式生效。
  • attr() 方法是用来操作HTML元素属性的,style 作为HTML属性,它的取值是一整段完整的CSS样式字符串,本身不支持拆分多个配置项单独赋值。
正确实现方案

方案1:继续使用attr()

将所有样式合并为一个完整的style字符串传入即可:

$('document').ready(function (){
  $('#prg1').attr('style', 'color:yellow; font-family:arial; border-style:dotted')
})

方案2(更推荐):使用jQuery的css()方法

css() 是jQuery专门用于操作元素行内样式的方法,支持直接传入样式键值对对象,无需手动拼接完整style字符串:

$('document').ready(function (){
  $('#prg1').css({
    color: 'yellow',
    'font-family': 'arial',
    'border-style': 'dotted'
  })
})

如果不写引号,CSS属性名也可以替换为驼峰格式,例如 fontFamily、borderStyle。

内容的提问来源于stack exchange,提问作者Sudarshan Patil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 03:06:07