2016-04-08 11 views
-4

innerHTMLを使用して変数をonclickイベントのパラメータとして渡す必要があります。ここに私のコードはonClickイベントのパラメータとしてinnerHTMLを渡します。

var seriesdel = document.getElementById('series_name').value; 
document.getElementById('all_series').innerHTML +="<p>"+document.getElementById('series_name').value+" <button class='button' id='delete' onclick='deleteseries("+seriesdel+");' value='Delete'>Delete</button></p>"; 

ご覧のように、私は「deleteseries」機能では、変数「seriesdel」を渡すしようが、私はちょうどそれが動作することはできません。

ありがとうございました。

+0

は、生成されたコードでjsfiddle –

+1

ルックを作ります。 –

答えて

-1

あなたは、文字列オブジェクトを渡すためにしようとしているので、あなたはonclickの関数呼び出しで、あなたの文字列をエスケープする必要があります。 onclick='deleteseries(\""+seriesdel+"\");'

+0

ありがとうございます!今すぐ完璧に動作します! –

3

フォーム制御値は文字列です。

JavaScriptで文字列値を貼りたい場合は、文字列値を引用符で囲む必要があります。

引用符を省略したので、入力に入力されたものは(数値以外の場合)変数名または構文エラーとして扱われます。

引用符を追加してください。 (おそらくHTMLに埋め込まれている)はJavaScriptに埋め込まれたHTMLに埋め込まれたJavaScriptに対処しようとすると


はあなたの頭痛の種を与えます。代わりにDOMを使用してください。もっと冗長ですが、はるかに明確です。

var seriesdel = document.getElementById('series_name').value; 
var paragraph = document.createElement('p'); 
paragraph.appendChild(document.createTextNode(seriesdel)); 
var button = document.createElement("button"); 
button.classList.add("button"); 
button.setAttribute("id", "delete"); 
button.value = "Delete"; 
button.appendChild(document.createTextNode("Delete")); 
button.addEventListener("click", deleteHandler); 
paragraph.appendChild(button); 
document.getElementById('all_series').appendChild(paragraph); 

function deleteHandler(event) { 
    deleteseries(seriesdel); 
} 
関連する問題