2017-07-16 10 views
0

私はJavaScriptを使ってWebページの本体に表を書き込むシンプルな関数を持っています。送信ボタンを押したときに関数を直接呼び出すと、関数が呼び出され、関数が正しく実行されますが、関数constructor()などの別の関数で関数をラップすると、何も実行されません。私は非常にjavascriptに新しいと本当になぜこれはそれが動作する方法の説明を探しています。なぜこのjavascript関数はこの他の関数を呼び出せませんか?

function makeTable(){ 
var body = document.body, 
    tbl = document.createElement('table'); 
tbl.style.width = '100px'; 
tbl.style.border = '1px solid black'; 
for(var i = 0; i < 2; i++){ 
    var row = tbl.insertRow(); 
    for(var j = 0; j < 2; j++){ 
      var cell = row.insertCell(); 
      cell.style.border = '1px solid black'; 
      var myText = document.createTextNode("some val"); 
      cell.appendChild(myText); 
     } 
    } 
    body.appendChild(tbl); 
} 

function constructor(){ 
maketable(); 
} 

HTML uは機能を綴った方法で

<!-- 
test.html 
--> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 

<head> 
    <title>JS Test</title> 
    <meta http-equiv="content-type" content="text/html;charset=utf-8" /> 
    <meta name="generator" content="Geany 1.27" /> 
</head> 

<body> 
    <script src = "test.js"></script> 
    <form> 
    </form> 
    <input type="submit" value="Submit" onclick="makeTable()"/> 

    <div id="output"></div> 
</body> 

</html> 
+0

いけない知っています。 – meow

+0

はい、私はこの質問を投稿して変更したことを認識しました。ただし、それでも機能は実行されません。 – JLH

+0

多分、別の関数名を使ってみてください。また、明らかにその関数を呼び出す必要があります。 – meow

答えて

1

見て!

function constructor(){ 
    maketable(); 
} 

それはmakeTable(); する必要があります:Dそれはちょうどここにあるか、あなたの実際のコードではなく、 `makeTable()`あなたの関数に不当に綴られている場合

+0

ええ、私はそれを提出した後にそれを実現しました。しかし、それでも実行されません。 – JLH

関連する問題