为什么这样最后不能“取消设置”?
为什么最后不能用控制类名的方法取消设置呢?求解
2015-08-07
不知道我这么说能不能听懂,首先注意你的mychar,它是变量(变量类型是Object),不是标签id。之前讲过更改className属性是为标签更改的。因此若想div应用one样式,应该是 txt.className="one".
但是这么做也不会成功,这是因为在你设置了一系列 mychar.style.XXX后,就相当于这样:
<div id="txt" style="width:XXX height:XXX dispaly: XXX ">
然后若按照我更改的 txt.className="one",会变成这样:
<div id="txt" style="width:XXX height:XXX dispaly: XXX " class="one">
相当于为div标签添加了行内样式属性和class属性,而之前学过行内样式优先级大于内联样式,因此div样式还是用的行内样式,不会取消设置。
因此最快捷的做法就是不用设置className,也不用在添加one样式,直接用
mychar.removeAttribute("style");(为什么不用txt.removeAttribute("style"),这是因为txt仅仅是标签,而只有对象才具有属性和方法,这也就是之前为什么要var mychar=document.getElementById("txt")了,会将id为txt的标签转换为对象。)
这样就会变成
<div id="txt">
这样可以取消style属性,会恢复为div的id(txt)设置的默认样式。
举报