亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么這樣最后不能“取消設置”?

為什么最后不能用控制類名的方法取消設置呢?求解

正在回答

3 回答

因為one已經不是原來的one,樣式已經被之前的JS改變了。建議用removeAttribute()方法吧。

function?cancel(){
???????var?myset=confirm("是否取消設置?")
???????if(myset==true){
???????????mychar.removeAttribute('style');
??????}
???}//定義"取消設置"的函數


0 回復 有任何疑惑可以回復我~
#1

Julieljy 提問者

非常感謝!
2015-08-07 回復 有任何疑惑可以回復我~

不好意思 我說的關于className不正確 應該是object.className=classname object是用document.ElementById獲取的對象名。mychar.className="one"沒問題

但是在設置style和className后,同樣是:

<div id="txt" ?style="width:XXX ?height:XXX ?dispaly: XXX "?? class="one">

但是行內樣式優先級大于內聯樣式,所以one設置的樣式不會起作用。

1 回復 有任何疑惑可以回復我~

不知道我這么說能不能聽懂,首先注意你的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)設置的默認樣式。

2 回復 有任何疑惑可以回復我~
#1

來自瘋人院的我 回復 Julieljy 提問者

我也有這個疑問,呵呵。我同樣是應用className無效才跑來看的。@愛麗絲走丟了 所說的我尚有存疑,但感覺也有些道理??磥磉@個className并不是那么好用哦。
2015-08-12 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么這樣最后不能“取消設置”?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號