js中使用getElementsByTagName,getElementsById等獲取html元素失敗,沒有獲取到,很有可能是頁面還沒有渲染完就去獲取了

Day____Day____Up發表於2018-03-15

在使用getElementsById獲取html,出現獲取到時空,很大的可能是頁面還沒有渲染完畢.  如下幾種情況會發生這種獲取不到的情況:

    直接寫在<head>標籤中,因為這是最開始執行,html還沒有渲染  所以如果嘗試  var e = getElementsById("p");

那麼返回的e是空.

    一個重點就是要在你要獲取的那個html元素渲染完畢後才能去使用 getElementsById;  2種方法:

方法1:

   如下例子:(要獲取p元素,那麼程式碼寫在<p>後面就可以

   <p>你好,測試一下啊</p>

   <script>  var e = getElementsById("p");//在這裡可以成功獲取</script>

 方法2:

   <head>

       function test(){

           var e = getElementById("p");

           console.log(e);//可以成功列印出來

      }

  </head>

    <body onload="test()">

       <p>測試測試</p>

    </body>


同理getElementsByTagName和getElementsClassName和getElementsByName幾個的用法也遵循以上的規則.

   

相關文章