javascript開發(fā)中因空格引發(fā)的錯誤
更新時間:2010年11月08日 17:13:54 作者:
最近寫一個關(guān)于用JavaScript做圖片自動切換問題發(fā)現(xiàn)一個非常奇特的問題,除了空格和換行外完全相同的代碼,在Firefox下卻有截然不同的運行結(jié)果,今天記錄以提供他人留意及自我備查。
廢話不多說,先上代碼給大家看看
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>依依園地</title>
</head>
<body>
<div id="win">
<ul id="picChange">
<li>
<img src="images/01.jpg" title="圖片1"></li>
<li>
<img src="images/02.jpg" title="圖片2"></li>
<li>
<img src="images/03.jpg" title="圖片3"></li>
</ul>
</div>
<script type="text/javascript">
var pic = document.getElementById('picChange');
var picList = pic.getElementsByTagName("li");
alert(picList[0].firstChild);
</script>
</body>
</html>
以上代碼1請分別在Firefox和IE中運行,F(xiàn)irefox出現(xiàn)的是 [object Text] ,而IE中出現(xiàn)的是[object],這里IE和Firefox都把picList[0].firstChild這個對象當作object對象,F(xiàn)irefox提示是Text類型對象,IE沒有提示更細了。
我們再運行下面這部分的代碼看看,看清楚了,代碼本身相同,但是li下面沒做換行縮進。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>依依園地</title>
</head>
<body>
<div id="win">
<ul id="picChange">
<li><img src="images/bigpic/01.jpg" title="護腰/HY005"></li>
<li><img src="images/bigpic/02.jpg" title="枕頭吊臂/DB-004"></li>
<li><img src="images/bigpic/03.jpg" title="大護腳/HY-001"></li>
</ul>
</div>
<script type="text/javascript">
var pic = document.getElementById('picChange');
var picList = pic.getElementsByTagName("li");
alert(picList[0].firstChild);
</script>
</body>
</html>
以上代碼2請分別在Firefox和IE中運行,F(xiàn)irefox出現(xiàn)的是 [object HTMLImageElement] ,而IE中出現(xiàn)的是[object],這里IE和Firefox都把picList[0].firstChild這個對象當作object對象,F(xiàn)irefox提示是HTMLImageElement類型對象,IE沒有提示更細了。
上下兩種寫法只是縮進和換行的差別,在IE中被認做相同的object對象,可是不同的縮進在Firefox中卻代表了不同的對象,F(xiàn)irefox對HTML的解析實在令人費解。
再此做記錄,希望各位朋友看了有用,別因為跟我一樣的問題半天沒找到解決問題的方法。
復制代碼 代碼如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>依依園地</title>
</head>
<body>
<div id="win">
<ul id="picChange">
<li>
<img src="images/01.jpg" title="圖片1"></li>
<li>
<img src="images/02.jpg" title="圖片2"></li>
<li>
<img src="images/03.jpg" title="圖片3"></li>
</ul>
</div>
<script type="text/javascript">
var pic = document.getElementById('picChange');
var picList = pic.getElementsByTagName("li");
alert(picList[0].firstChild);
</script>
</body>
</html>
以上代碼1請分別在Firefox和IE中運行,F(xiàn)irefox出現(xiàn)的是 [object Text] ,而IE中出現(xiàn)的是[object],這里IE和Firefox都把picList[0].firstChild這個對象當作object對象,F(xiàn)irefox提示是Text類型對象,IE沒有提示更細了。
我們再運行下面這部分的代碼看看,看清楚了,代碼本身相同,但是li下面沒做換行縮進。
復制代碼 代碼如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>依依園地</title>
</head>
<body>
<div id="win">
<ul id="picChange">
<li><img src="images/bigpic/01.jpg" title="護腰/HY005"></li>
<li><img src="images/bigpic/02.jpg" title="枕頭吊臂/DB-004"></li>
<li><img src="images/bigpic/03.jpg" title="大護腳/HY-001"></li>
</ul>
</div>
<script type="text/javascript">
var pic = document.getElementById('picChange');
var picList = pic.getElementsByTagName("li");
alert(picList[0].firstChild);
</script>
</body>
</html>
以上代碼2請分別在Firefox和IE中運行,F(xiàn)irefox出現(xiàn)的是 [object HTMLImageElement] ,而IE中出現(xiàn)的是[object],這里IE和Firefox都把picList[0].firstChild這個對象當作object對象,F(xiàn)irefox提示是HTMLImageElement類型對象,IE沒有提示更細了。
上下兩種寫法只是縮進和換行的差別,在IE中被認做相同的object對象,可是不同的縮進在Firefox中卻代表了不同的對象,F(xiàn)irefox對HTML的解析實在令人費解。
再此做記錄,希望各位朋友看了有用,別因為跟我一樣的問題半天沒找到解決問題的方法。
相關(guān)文章
微信小程序?qū)崿F(xiàn)動態(tài)獲取元素寬高的方法分析
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)動態(tài)獲取元素寬高的方法,結(jié)合實例形式分析了微信小程序動態(tài)獲取、設(shè)置元素寬高的相關(guān)操作技巧與注意事項,需要的朋友可以參考下2018-12-12echarts多條折線圖動態(tài)分層的實現(xiàn)方法
這篇文章主要介紹了echarts多條折線圖動態(tài)分層的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-05-05js中apply和Math.max()函數(shù)的問題及區(qū)別介紹
這篇文章主要介紹了js中apply和Math.max()函數(shù)的問題,本文給大家?guī)韮煞N答案,每一種答案給大家介紹的非常詳細,在文章底部給大家提到了js中Math.max.apply和Math.max的區(qū)別,感興趣的朋友一起看看吧2018-03-03JavaScript實現(xiàn)PC端四格密碼輸入框功能
這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)PC端四格密碼輸入框功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-02-02