在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML/ javascript中無(wú)法設(shè)置 position js dom編程藝術(shù)第十章練

javascript中無(wú)法設(shè)置 position js dom編程藝術(shù)第十章練習(xí)

題目描述

這是js dom編程藝術(shù)中的一個(gè)練習(xí) 想要一些動(dòng)畫(huà)效果 但是我無(wú)法用js設(shè)置 元素的 style 的屬性;

相關(guān)代碼

// 請(qǐng)把代碼文本粘貼到下方(請(qǐng)勿用圖片代替代碼)
<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title></title>
    <script type="text/javascript">
        function addLoadElement(func){
            var oldonload = window.onload;
            if(typeof window.onload != "function"){
                window.onload = func;
            }else{
                window.onload = function(){
                    oldonload();
                    func();
                }
            }
        }
        function positionMessage(){
            if(!document.getElementsByTagName) return false;
            if(!document.getElementsByTagName("p")) return false;
            var elem = document.getElementsByTagName("p");
            elem.style.position = "absolute";
            elem.style.top = "500px";
            elem.style.left = "100px";
            
        }
        addLoadElement(positionMessage);
        
    </script>
</head>
<body>
    <p>666666</p>

</body>

</html>

你期待的結(jié)果是什么?實(shí)際看到的錯(cuò)誤信息又是什么?

問(wèn)題描述

發(fā)生報(bào)錯(cuò) [Web瀏覽器] "Uncaught TypeError: Cannot set property 'position' of undefined" /HelloHBuilder/new_file.html (22)
我想知道是哪里寫(xiě)錯(cuò)了 。

回答
編輯回答
忘了我

getElementsByTagName返回的是一個(gè)數(shù)組,你那個(gè)return false也是沒(méi)用的。

var elem = document.getElementsByTagName("p")[0]
2017年10月3日 09:20
編輯回答
空痕

在console輸入
document.getElementsByTagName('p')然后回車(chē),可以看到是一個(gè)HTMLCollection,這是一個(gè)類(lèi)數(shù)組對(duì)象,那個(gè)if判斷是沒(méi)有用的,因?yàn)闊o(wú)論找到與否,都會(huì)返回一個(gè)HTMLCollection,結(jié)果都為true。
可以按照數(shù)組下標(biāo)的形式取得你要的DOM對(duì)象,或者加class或id換種方式取得。

2018年2月18日 18:59