请问问题出在哪里
来源:6-7 编程练习
蛤小蛤
2019-11-05 17:09:04
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<title>arguments</title>
</head>
<body>
<p id="test" style="background-color: red; color: blue;">我是一个段落!</p>
<script type="text/javascript">
// 在此处补充代码
/* 6-7 编程练习
写一个操作css的函数,要求第一个参数传DOM元素(elem),第二个参数传属性名,第三个参数传属性值。如果只有两个参数,则返回属性的值;如果有三个参数则设置属性值
任务
1. 定义一个函数css , 用于操作css
2. 利用arguments.length判断实参的个数,做相应的事情
如果只有两个参数
如果有三个参数则设置属性值
3. 给id为test的p元素,通过css函数设置样式。
第一个:传入一个元素,background-color和orange
第二个:传入一个元素,一个color。并输出。 */
function css(elem, name, value) {
if (arguments.length != css.length) return value;
elem.style.name = value;
}
css(document.getElementById("text"), backgroundColor, orange);
console.log(css(document.getElementById("text"), color));
</script>
</body>
</html>1回答
同学你好,代码中问题如下:
1、p标签id值为test不是text,写错导致元素没有获取到。
2、传参的时候需要是字符串的形式,如果不是字符串就会被认为是变量,变量没有定义的话就会报错。
3、在设置属性的时候,如果属性名是变量,不能使用点的方式设置,会直接将形参name作为属性名,而不是传入的参数了。需要换成[]的方式设置。
参考下图修改:

自己重新测试下,祝学习愉快!
欢迎采纳~
相似问题