請(qǐng)教一下大神!
<!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使網(wǎng)頁(yè)顯示動(dòng)態(tài)效果并實(shí)現(xiàn)與用戶(hù)交互功能。</p>
? ? <input type="button" value="添加樣式" onclick="add()"/>
<p id="p2" class="one">JavaScript使網(wǎng)頁(yè)顯示動(dòng)態(tài)效果并實(shí)現(xiàn)與用戶(hù)交互功能。</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>
請(qǐng)問(wèn)為什么它是顯示(p2的值為:undefined) ?而不是顯示p2具體的className值呢?請(qǐng)問(wèn)哪里寫(xiě)錯(cuò)了嗎?
2015-12-12
大嬸告訴你,你這個(gè)寫(xiě)法是錯(cuò)誤的,本來(lái)應(yīng)該報(bào)錯(cuò)的,但是你歪打正著,輸出了undefined。。
大嬸為啥要這樣說(shuō)的?
因?yàn)閜2是一個(gè)id,然后在某些瀏覽器下(比如chrome)有中快捷寫(xiě)法,就是可以直接用id值來(lái)代表dom元素。。
所以, ? p2.className
相當(dāng)于 ? var p2 = document.getElementById('p2');
? ? ? ? ? ? p2.className
看明白了吧?就是一種簡(jiǎn)寫(xiě)。不支持這種寫(xiě)法的瀏覽器會(huì)報(bào)錯(cuò)。。
假設(shè)你知道這種簡(jiǎn)寫(xiě),你是故意這樣寫(xiě)的,那么我接著往下說(shuō)為什么是undefined,
因?yàn)榇a執(zhí)行到?document.write("<br />"+"p 2 的 值 為:"+p2.classNmae) 這句的時(shí)候,p2根本沒(méi)有className屬性?。。?!所以不是undefined才怪嘞。。
雖然你寫(xiě)了一個(gè)add方法來(lái)添加className屬性,但是這時(shí)候這個(gè)add方法還沒(méi)執(zhí)行。。
2015-12-30
你寫(xiě)錯(cuò)了 ?p2.className ?你寫(xiě)成了p2.classNmae
2015-12-12
謝啦~ 我還想請(qǐng)教一下大嬸我這個(gè)寫(xiě)法是錯(cuò)誤的是簡(jiǎn)寫(xiě)可能有些瀏覽器不支持,那正確的寫(xiě)法是怎么樣的呢?
再次感謝!