用函数来设置样式时style的问题

用函数来设置样式时style的问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<html> 
<head> 
    <meta charset="UTF-8" /> 
    <title> arguments</title> 
</head> 
<body> 
   <p id="test" style="background-color: red; color: blue;">我是一个段落!</p>
<script type="text/javascript"
// 在此处补充代码
function setDom(id,atr,val){
    var ele=document.getElementById(id);
    ele.style.atr=val;//ele.style[atr]=val;
}
}
 
setDom("test",backgroundColor,"orange")
 
</script> 
</body> 
</html>

一开始代码是这样的,设置不了,随后改成了注释里面的,OK了

那么问题来了,这个style在js中是一个引用类型的对象么?里面的属性和值都是键值对?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
留白未来 2017-12-01 11:21:01

我的理解如下:

  1. backgroundColor不加""又不是变量,怎么能传进去?

  2. 只能传"backgroundColor",那么 ele.style.atr=val; 就变成了: ele.style."backgroudColor"=orange;(但我不明白为什么控制台不报错)

  3. ele.style[xxx]这种写法,[xxx]内是支持string的,有时我们做字符串拼接就得用[],所以就没问题了.

Miss路 2017-11-22 17:11:07

这里的style指的是<p id="test" style="background-color: red; color: blue;">我是一个段落!</p> 中的style,里面的格式就是键值对的,你还可以用style.color 的方式给里面的属性设置值。祝学习愉快。

  • 提问者 红星双子 #1
    这里面的style是行内样式,是键值对的形式。那么外部样式呢?
    2017-11-22 17:42:51
  • Miss路 回复 提问者 红星双子 #2
    外部样式就不能用style.color去写了,这是是dom操作,是针对标签中的内容的,和外部样式不掺和的,不要混淆了哦。
    2017-11-22 18:30:06
小于飞飞 2017-11-22 10:36:48

代码问题如下:

  1. 该代码14行多了} 去掉传参是

  2. setDom("test",backgroundColor,"orange")应该是setDom("test","backgroundColor","orange"),否则提示backgroundColor is not defined(backgroundColor未定义)

  3. ele.style.atr 是说为样式名为atr设置样式,ele.style[atr]为样式名为atr存储的内容定义样式,及backgroundColor。

    对象的两种引用方法: ' . '和[ ]

  • 提问者 红星双子 #1
    这个style在js中是一个引用类型的对象么?里面的属性和值都是键值对?
    2017-11-22 16:55:41
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
HTML5与CSS3实现动态网页 2018
  • 参与学习       1887    人
  • 提交作业       4643    份
  • 解答问题       5760    个

有HTML和CSS基础,却不知道如何进阶?本路径带你通过系统学习,完成从“会做网页”到“做出好的动态网页”的蜕变,迈出成为前端工程师的第一步。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师