為什么這樣不能輸出class屬性?
<script type="text/javascript">
? function add(){
? ? ?var p1 = document.getElementById("p1");
? ? ?p1.className="one";
? ? ? ? ??
? }
? ? ? ?document.write("此段樣式名稱為:"+p1.className+"<br>");
</script>
//以上為什么不能輸出P1的class屬性;
<script type="text/javascript">
? function add(){
? ? ?var p1 = document.getElementById("p1");
? ? ?p1.className="one";
? ? ? ? document.write("此段樣式名稱為:"+p1.className+"<br>");
? }
</script>
而這樣雖然能輸出class屬性,但是會(huì)使整個(gè)頁面的文本只剩下此段樣式名稱為:one
2016-06-12
第一段代碼中為什么輸出不了p1的值,這是因?yàn)槟阍谌值沫h(huán)境中輸出函數(shù)體內(nèi)的變量,p1的作用域僅在函數(shù)體add()中,在全局中是沒有定義的,所以輸出不了,p1沒有定義,自然為空。
第二段代碼你只給了一半,把HTML代碼中完整貼出來才好分析,怎么調(diào)用這個(gè)函數(shù)add()的地方?jīng)]有說明白。
2016-06-11
你好!
? ? ? 把?document.write 改成 alert 就可以看到你想要的結(jié)果。
當(dāng)然,要寫在函數(shù)里才行。
寫在外面為什么不行?
因?yàn)?,寫在外面的話,函?shù)還沒有執(zhí)行,它就經(jīng)執(zhí)行了,所以看不到結(jié)果;而且等函數(shù)執(zhí)行完了,函數(shù)結(jié)果已經(jīng)銷毀了,它還是沒能拿到結(jié)果。
所以要寫在里面。
那有沒有別的方法呢? ? 有!
那就是不要函數(shù)——直接寫
? ? ?var p1 = document.getElementById("p1");
? ? ?p1.className="one";
? ? ?document.write("此段樣式名稱為:"+p1.className";
2016-06-06
因?yàn)槟阒宦暶髁艘粋€(gè)函數(shù),而沒有去調(diào)用執(zhí)行。
在1-9的學(xué)習(xí)中有提到過 “函數(shù)定義好后,是不能自動(dòng)執(zhí)行的“
2016-06-06
你把完整的代碼給我吧,你這給一半兒,也不好看,多用DW試驗(yàn)一下就明白了
2016-06-06
注意:我試了一下,兩種寫法都不能輸出P1的class屬性。函數(shù)定義好后,是不能自動(dòng)執(zhí)行的。寫在函數(shù)中的代碼,是在某一條件下需要被調(diào)用(例如,點(diǎn)擊事件)。所以,具體的寫法是:將獲取對象和輸出屬性代碼放到函數(shù)外,將要改變的 class屬性放在函數(shù)中去處理。例如,下面的這種處理: