為什么這樣不能輸出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屬性,但是會使整個頁面的文本只剩下此段樣式名稱為:one
2016-06-12
第一段代碼中為什么輸出不了p1的值,這是因為你在全局的環境中輸出函數體內的變量,p1的作用域僅在函數體add()中,在全局中是沒有定義的,所以輸出不了,p1沒有定義,自然為空。
第二段代碼你只給了一半,把HTML代碼中完整貼出來才好分析,怎么調用這個函數add()的地方沒有說明白。
2016-06-11
你好!
? ? ? 把?document.write 改成 alert 就可以看到你想要的結果。
當然,要寫在函數里才行。
寫在外面為什么不行?
因為,寫在外面的話,函數還沒有執行,它就經執行了,所以看不到結果;而且等函數執行完了,函數結果已經銷毀了,它還是沒能拿到結果。
所以要寫在里面。
那有沒有別的方法呢? ? 有!
那就是不要函數——直接寫
? ? ?var p1 = document.getElementById("p1");
? ? ?p1.className="one";
? ? ?document.write("此段樣式名稱為:"+p1.className";
2016-06-06
因為你只聲明了一個函數,而沒有去調用執行。
在1-9的學習中有提到過 “函數定義好后,是不能自動執行的“
2016-06-06
你把完整的代碼給我吧,你這給一半兒,也不好看,多用DW試驗一下就明白了
2016-06-06
注意:我試了一下,兩種寫法都不能輸出P1的class屬性。函數定義好后,是不能自動執行的。寫在函數中的代碼,是在某一條件下需要被調用(例如,點擊事件)。所以,具體的寫法是:將獲取對象和輸出屬性代碼放到函數外,將要改變的 class屬性放在函數中去處理。例如,下面的這種處理: