老师,问你下这里为什么要加引号才可以?

来源:3-9 Map的应用

ocean学前端

2023-04-10 20:39:39

https://img.mukewang.com/climg/6434037b0930670a03050108.jpg

  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这个样式:

https://img.mukewang.com/climg/6434b992093cd9ac11800115.jpg

即color是属性,green是属性值,二者都是固定的字符串,所以要用引号包裹。

如果不加引号,js会将其当成变量来解析,实际效果与预期不符。

另外,dom元素.style.属性=属性值是固定语法,其中属性和属性值本质上是字符串形式。

祝学习愉快!

0

前端工程师

前端入门如同写字,如果你不知道从哪开始,那就选择前端(含Vue3.x,React17,TS)

20327 学习 · 17877 问题

查看课程