问答详情
源自:9-17 创建文本节点createTextNode

p.className="message"和p.setAttribute("className","message")

为什么p.className="message"和p.setAttribute("className","message")不是一样的,前者有效,后者无效呢

提问者:win_lee 2014-11-27 00:57

个回答

  • 东吴老大
    2014-11-27 09:47:21

    p.className = 'message' 效果上等价于 p.setAttribute('class', 'message'),前者是取/设置DOM的标准属性,后getAtrribute和setAttribute是取/设置DOM的非标准属性,当然标准的也行,并且直接写属性名就行了,不用做任何变换;


    DOM标准属性与javascript中保留字冲突时(例如label的for属性),通常会写成html+属性名(如htmlFor),但class属性是个例外,class在javascript中是将是很重要的保留字(暂时还没用),作为js中DOM属性的class会写成className

  • dayscounting
    2014-11-27 09:02:04

    前者给该class 为message 后面是设置className属性为Message   而不是class