2016-11-25 48 views
0

文字列パラメータが必要なjavascriptのplayAudio()関数があります。私は文字列の値をこの関数のパラメータとして渡す方法を理解できないようです。文字列内の文字列を文字列内で渡すにはどうすればよいですか?

htmlString = "<button class='button-icon' value='PLAY' onclick='playAudio()'></button>"; 

"SP00005"という文字列をパラメータとして渡したいとします。しかし、私は逆のカンマやアポストロフィを使用することができません。これはすでにhtmlStringの外側の部分に使用されています。

私も次に示すように様々なステップにhtmlStringの形成を解体しようとした:

htmlString = ""; 
htmlString += "<button class='button-icon' value='PLAY' onclick='playAudio("; 
htmlString += "SP00005"; 
htmlString += ")'></button>"; 

だから、あなたに私の質問は:どのように私は、それ自体が文字列である文字列内の文字列を渡すのですか?

+0

htmlString =ずに、しかし、あなたがしたいあなたは、文字列を構築することができます文字列\ ") '>"; –

答えて

2

1つの方法は、"をエスケープすることです。あなたはまた戻って使用することができます

document.getElementById('fooBtn').addEventListener('click', function() { 
    playAudio("SP00005"); 
}); 
+0

ありがとう!エスケープがトリックでした!ページが動的で、データベースによってロードされたコンテンツに応じて異なるボタンが追加されたため、イベントリスナーは適切ではありませんでした。どうもありがとう!! – rvelbon

+0

あなたは大変歓迎です@rvelbon – baao

0

あなたは "に解決\"'

例テスト= "Hello, I am \"Steve\""

で:こんにちは、私は "逃げることができるスティーブはplayAudio内部"

0

あなたは\を使用して、この方法を実行する必要があります" ():

htmlString = ""; 
htmlString += "<button class='button-icon' value='PLAY' onclick='playAudio(\""; 
htmlString += "SP00005"; 
htmlString += "\")'></button>"; 
0

htmlString = "<button class='button-icon' value='PLAY' onclick='playAudio(\"foo\")'></button>"; 

より良いオプションは、JavaScriptでボタンを選択したEventListenerを追加し、インラインJS

<button id="fooBtn" class='button-icon' value='PLAY'></button> 

jsファイルについては気にしないことですダニ。これは、 "onclickの= 'playAudio(\ <ボタンクラス= 'ボタンアイコン' の値= 'PLAY'" よりエスケープ文字

var string = `<button class='button-icon' value='PLAY' onclick='playAudio('SP00005')'></button>`; 

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals

+1

es6からIEのサポートはありませんが、現時点ではこれを行う良い方法です – baao

+1

その警告のバオをありがとう! –

+0

私はそれを言うのは嫌い、私はテンプレートの文字列を使用しているすべての時間..しかし、すべての新しいブレークIEの... :) – baao

関連する問題