老师,问你下这里为什么要加引号才可以?
来源:3-9 Map的应用
ocean学前端
2023-04-10 20:39:39

const [p1, p2, p3] = document.querySelectorAll("p")
//method 1
// const m = new Map()
// m.set(p1, "red")
// m.set(p2, "blue")
// m.set(p3, "green")
// const m=new Map([
// [p1, "red"],[p2, "blue"],[p3, "green"]
// ])
// m.forEach((color, elem) => {
// elem.style.color = color
// })
// console.log(m)
// const m = new Map([
// [p1, {
// color:"red",
// backgroundColor:"yellow",
// fontSize:"40px"
// }],[p2, {
// color: "green",
// backgroundColor: "orange",
// fontSize: "40px"
// }],[p3, {
// color: "blue",
// backgroundColor: "purple",
// fontSize: "40px"
// }]
// ])
// m.forEach((propObj,elem) => {
// for(const p in propObj){
// elem.style[p]=propObj[p]
// }
// })
const m = new Map([
[p1, new Map([["color", "green"], ["backgroundColor", "orange"], ["fontSize", "40px"]])],
[p2, new Map([["color", "green"], ["backgroundColor", "orange"], ["fontSize", "40px"]])],
[p3, new Map([["color", "green"], ["backgroundColor", "orange"], ["fontSize", "40px"]])]
])
m.forEach((propObj, elem) => {
propObj.forEach((value, key) => {
elem.style[key] = value
})
})
1回答
好帮手慕久久
2023-04-11
同学你好,代码的效果是给p标签设置样式,比如给p标签添加color:green这个样式:

即color是属性,green是属性值,二者都是固定的字符串,所以要用引号包裹。
如果不加引号,js会将其当成变量来解析,实际效果与预期不符。
另外,dom元素.style.属性=属性值是固定语法,其中属性和属性值本质上是字符串形式。
祝学习愉快!
相似问题