2016-04-05 85 views
0

所以這裏是我的代碼。Javascript和HTML getElementById神祕失效

這裏是HTML

<html> 

    <head> 

     <script src = "Thing.js" type = "text/javascript"> 
    </script> 
     <link rel="stylesheet" type="text/css" href="Main.css"> 
    </head> 

    <body> 
    <h2 id = "warning"> You are going down mate</h2> 

    <input type = "button" value = "Raid" onclick = "sayHi()" /> 
    </body> 


</html> 

這裏是我的javascript代碼

function sayHi(){ 
    var warner = getElementById("warning"); 
    alert(warner); 
} 

的問題是,當我運行它,它不工作。此外,我使用的是崇高文本,如果與它有任何關係,我也會使用谷歌瀏覽器。

+2

你錯過了'document',所以is'document.getElementById( 「警告」);' –

+1

繼別人怎麼說 - 我想象你想顯示msg'「你正在下降伴侶」'。如果是這樣,請使用:alert(document.getElementById('warning')。innerText);' – enhzflep

+1

@enhzflep **永遠不要使用'.innerText'。這不是標準的,並且不存在於Firefox中。使用'.innerHTML'或'.textContent'。 – Barmar

回答

1

getElementById不是全局window的方法:thissayHi函數內。使用document.getElementById()

+0

你能否重新寫我的代碼?我不明白你的意思。 –

+0

@Syndromez在'javascript'問題處只使用'getElementById()'。 'getElementById()'是'document'的一個方法。如果預期的結果是警告'#warning'元素的文本內容,您可以調整現有的'javascript'在'.g​​etElementById()'之前包含'document',使用['.textContent''](https:// developer。 mozilla.org/en-US/docs/Web/API/Node/textContent)鏈接到'document.getElementById(「warning」)''alert'文本而不是'DOM'元素'#warning';例如'function sayHi()var warner = document.getElementById(「warning」)。textContent; (warner); }' – guest271314

2

我假設你想讓鬧鐘說出文字。如果這樣使用innerHTML, [innerText]2textContent。正如其下載和guest271314已經指出的那樣,使用document,如document.getElementById()

編輯

Barmar建議:

決不使用.innerText。這不是標準的,並且不存在於Firefox中。使用.innerHTML.textContent

function sayHi() { 
 
    var warner = document.getElementById("warning").innerHTML; 
 
    alert(warner); 
 
}
<html> 
 

 
<head> 
 

 
    <script src="Thing.js" type="text/javascript"> 
 
    </script> 
 
    <link rel="stylesheet" type="text/css" href="Main.css"> 
 
</head> 
 

 
<body> 
 
    <h2 id="warning"> You are going down mate</h2> 
 

 
    <input type="button" value="Raid" onclick="sayHi()" /> 
 
</body> 
 

 

 
</html>