請教一下大神!
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>className屬性</title>
<style>
? ? body{ font-size:16px;}
? ? .one{
border:1px solid #eee;
width:230px;
height:50px;
background:#ccc;
color:red;
? ? }
.two{
border:1px solid #ccc;
width:230px;
height:50px;
background:#9CF;
color:blue;
}
</style>
</head>
<body>
? ? <p id="p1" > JavaScript使網頁顯示動態(tài)效果并實現與用戶交互功能。</p>
? ? <input type="button" value="添加樣式" onclick="add()"/>
<p id="p2" class="one">JavaScript使網頁顯示動態(tài)效果并實現與用戶交互功能。</p>
? ? <input type="button" value="更改外觀" onclick="modify()"/>
<script type="text/javascript">
? ? document.write("<br />"+"p2的值為:"+p2.classNmae)
? function add(){
? ? ?var p1 = document.getElementById("p1");
? ? p1.className="one";
? }
? function modify(){
? ? ?var p2 = document.getElementById("p2");
? ? ?p2.className="two";
? ? ? ? ? ?}
? ? ? ?
</script>
</body>
</html>
請問為什么它是顯示(p2的值為:undefined) ?而不是顯示p2具體的className值呢?請問哪里寫錯了嗎?
2015-12-12
大嬸告訴你,你這個寫法是錯誤的,本來應該報錯的,但是你歪打正著,輸出了undefined。。
大嬸為啥要這樣說的?
因為p2是一個id,然后在某些瀏覽器下(比如chrome)有中快捷寫法,就是可以直接用id值來代表dom元素。。
所以, ? p2.className
相當于 ? var p2 = document.getElementById('p2');
? ? ? ? ? ? p2.className
看明白了吧?就是一種簡寫。不支持這種寫法的瀏覽器會報錯。。
假設你知道這種簡寫,你是故意這樣寫的,那么我接著往下說為什么是undefined,
因為代碼執(zhí)行到?document.write("<br />"+"p 2 的 值 為:"+p2.classNmae) 這句的時候,p2根本沒有className屬性?。。?!所以不是undefined才怪嘞。。
雖然你寫了一個add方法來添加className屬性,但是這時候這個add方法還沒執(zhí)行。。
2015-12-30
你寫錯了 ?p2.className ?你寫成了p2.classNmae
2015-12-12
謝啦~ 我還想請教一下大嬸我這個寫法是錯誤的是簡寫可能有些瀏覽器不支持,那正確的寫法是怎么樣的呢?
再次感謝!