错误:
color && el.style.color = color;
发生了什么事? DOM级别2属性现在是“只读”吗?
答案 0 :(得分:6)
问题是precedence,你需要parens:
function log(msg, color) {
var el = document.createElement('p');
el.innerText = msg;
document.getElementById('log').appendChild(el);
color && (el.style.color = color);
}
&&
的优先级高于=
,所以没有parens,你最终会尝试分配一个表达式(例如,它有效地读取(color && el.style.color) = color;
),当然你不能做。
答案 1 :(得分:0)
我同意Mark Linus,但您也可以将代码重写为
color && (el.style.color = color)