簡體   English   中英

Js, document.getElementById("ID").innerHTML, 錯誤

[英]Js, document.getElementById("ID").innerHTML, error

您好,我是 javascript 新手,我正在嘗試為測試站點編寫一些代碼,但遇到了一些問題,下面是我的代碼,我不斷收到此錯誤,我不知道為什么。

TypeError: null is not an object (evaluating 'document.getElementById("h3").innerHTML = "<h3>You Are up to date!</h3>"')

這是我嘗試使用的第二種方法。 我想要做的是有一個版本列表,我的第一個是它會拉一個 .js 文件並構建一個表,但這沒有用,所以我想我會嘗試這個,但你猜怎么着發生了? 不工作

我現在使用的代碼如下。 如果你能提供幫助,那就太棒了。 謝謝,達克梅西耶

var current = "1.0";
function get_latest(){
document.getElementById("bob").innerHTML = current;
}

if (local != current){
document.getElementById("Get").innerHTML = "<button><a href=\"bla\">Get the Latest Update!</a></button>";
} else if (local == current){
 document.getElementById("h3").innerHTML = "<h3>You Are up to date!</h3>";
} else {
document.getElementById("h3").innerHTML = "<h3>Sorry, unable to check for update.</h3>";
}

document.getElementById(id)在HTML中查找具有給定id值的元素。 id值如下所示:

<div id="myHeader">Some Content</div>

然后,您可以通過以下方式找到該元素:

document.getElementById("myHeader");

ID值在每個文檔中必須唯一,因此,只有一個具有給定ID的元素。


如果id不是您真正想要的,則可以使用CSS選擇器和document.querySelectorAll()來通過標記類型,類名,屬性等其他方式找到元素。

例如,如果要查找所有<h3>標簽,可以執行以下操作:

var items = document.querySelectorAll("h3");

這是document.getElementById(...)可能找不到您要查找的內容的其他一些原因:

  1. Javascript代碼在DOM元素被解析和加載之前就已運行,因此在您運行代碼時該元素實際上還不存在。 這與從文檔的<head>部分運行的代碼很常見。

  2. 您如何在HTML中指定id值時遇到HTML錯誤。

  3. 您有HTML錯誤,該錯誤導致瀏覽器無法正確解析HTML。

  4. 您有一個腳本錯誤,導致腳本在到達要運行的部分之前中止。

實際上,如果無法找到具有指定ID的元素,則document.getElementById將返回null。

還聲明:

if (local != current){
 // ..
} else if (local == current){
 // ..
} else {
 // ..
}

有點奇怪。 如果local != currentfalselocal == current必須為true else if (...)是多余的, else部分將永遠不會運行。

嘿,您最想做的事情是以下示例,請隨時將其復制到代碼段中:

 function myFunction() { document.getElementById("demo").innerHTML = "Paragraph changed!"; } 
 <!DOCTYPE html> <html> <body> <p id="demo" onclick="myFunction()">Click me to change my HTML content (innerHTML).</p> </body> </html> 

我將向您解釋這個答案:這是一個html +一個使內部html起作用的內聯腳本。 至於您的答案,目前尚不清楚您的代碼在哪里停止,無論如何都要測試我的代碼片段並讓我知道

我知道這是一個古老的問題,但是我遇到了同樣的問題,並且一直在努力尋找解決方案。

問題是我在頁面加載之前執行了腳本。 因此,它無法找到我們要捕獲的對象。

因此,要么使用jquery document.ready函數,要么將腳本移到html的末尾。

我希望這有幫助

修復將 a 的值設為 null 的錯誤

Uncaught TypeError: a is null

代碼:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
    <script>
        let a = document.getElementById('i');
        document.addEventListener('mouseup',function(){
            a.innerHTML='clean';
        })
        
    </script>
<body>
    <h3 id="i">not clean</h3>
</body>
</html>

這在控制台中顯示為錯誤

Uncaught TypeError: a is null

您可以通過在之前制作腳本標簽來修復它

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h3 id="i">not clean</h3>
    <script>
        let a = document.getElementById('i');
        document.addEventListener('mouseup',function(){
            a.innerHTML='clean';
        })
        
    </script>
</body>
</html>

這可能會解決!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM