2016-12-12 22 views
0

文字を取り込んでその中の文字でボタンを作る関数を作ろうとしています。これまで私がこれまで持っていたことは次のとおりです。ボタンを作成する関数を作成するHTML/JS

function keyButton(char) { 
    var btn = document.createElement("button"); //create button 
    btn.innerText = char; //fill it with char 
    return btn; 
    } 

    var button = keyButton("a"); //use keyButton to fill buttons with characters 
    document.appendChild(button); 

これはうまくいきませんが、何か助けになると思います。

+2

「ドキュメント」にボタンを追加することはおそらく問題です。 'document.body.appendChild(button);'を試してください。 – Pointy

+0

どのように動作しませんか? – krillgar

+0

報告されたエラーが表示されるように開発者コンソールを開いたままにしておきます。 – Pointy

答えて

1

document.createTextNodeを使用してテキストノードを作成し、ボタンをdocument.bodyに追加することができたと思います。

function keyButton(char) { 
 
    var btn = document.createElement("button"); 
 
    btn.appendChild(document.createTextNode(char)); 
 
    return btn; 
 
} 
 

 
var button = keyButton("a"); 
 
document.body.appendChild(button);

0

@Pointyは、ドキュメントにボタンを追加することができない、と述べたように、それはまさにそれです。 enter image description here

0

使用ボディは、DOM

document.body.appendChild(); 

に子を追加する:あなたはそれが動作しますdocument.appendChild(button);document.body.appendChild(button);に変更すると screenshot

:コンソールでこれを試してみる場合は、このエラーを取得する必要がありますconsole.log(btn);を実行すると、コードが正しいことを意味する関数に渡されたcharのボタンが返されます。唯一の間違いは、あなたが忘れていたことです。bodydocument
あなたが目に見える要素に追加する必要があるので、ここで は、

function keyButton(char) { 
    var btn = document.createElement("button"); //create button 
    btn.innerText = char; //fill it with char 
    return btn; 
    } 

    var button = keyButton("a"); //use keyButton to fill buttons with characters 
console.log(button); 
document.body.appendChild(button); 
0

あなたは、documentからbuttonを挿入することはできませんあなたがそれを行うならば、あなたは(少なくともFirefoxで)HierarchyRequestError: Node cannot be inserted at the specified point in the hierarchyを取得するコード取り組んでいるあなたページ、たとえばdocument.body

関連する問題