2

私のjavascriptはhtmlの行を作成します。

そのhtmlには、へのonclickイベント呼び出しがありopenSingle()ます。

その関数に変数を渡す必要があります。

onclick="openSingle('+findID+')"

実行時に開発パネルを確認すると、

onclick="openSingle(WP0100200-3a)"

欠けているのは、. を囲む引用符だけですid。しかし、引用符でコーディングしようとすると、html が壊れて、すべてが乱れます。

これが私のコード行と関連するすべての変数です。

var iconImage = '<img src="../../resources/images/annotation-icon.png" style="float:left; margin-left:20px; margin-right:0px;"onclick="openSingle('+findID+')"/>';
var paragraph = '<p id="Manual-para" class="colorMe"><a href="';
var redirect = linkMe + '#' + findID;
var manName = section.childNodes( x ).getAttribute( "manualName" );
var workPack = section.childNodes( x ).getAttribute( "workPacket" );

document.getElementById( "annotateBody" ).innerHTML += iconImage + paragraph + redirect + '">' + annotationTitle + ' - ' + manName + ' - ' + workPack + '</a></p>';
4

5 に答える 5

3

次のようにバックスラッシュで引用符をエスケープできます

var iconImage = '<img src="../../resources/images/annotation-icon.png" style="float:left; margin-left:20px; margin-right:0px;"onclick="openSingle(\''+findID+'\')"/>';

他のコメントが示唆しているように、理想的にはインラインJavascriptを避けるべきです

于 2012-11-27T13:30:29.883 に答える
0

次のように、一重引用符をエスケープします。

var iconImage = '<img src="../../resources/images/annotation-icon.png" style="float:left; margin-left:20px; margin-right:0px;"onclick="openSingle(\''+findID+'\')"/>';
于 2012-11-27T13:31:31.107 に答える
0

追加してみると\'問題が解決します

var iconImage = '<img src="../../resources/images/annotation-icon.png" style="float:left; margin-left:20px; margin-right:0px;"onclick="openSingle(\''+findID+'\;)"/>';
于 2012-11-27T13:31:36.287 に答える
0

答えは次のとおりです。エスケープ文字\for'文字

var iconImage = '<img src="../../resources/images/annotation-icon.png" style="float:left; margin-left:20px; margin-right:0px;"onclick="openSingle(\''+findID+'\;)"/>';

また、連結してみ&lsquo;てください&rsquo;

于 2012-11-27T13:31:58.477 に答える
-1

試してみることができることの1つは、DOMノードを作成した後にonclickをアタッチすることです。これにより、必要に応じて柔軟に対応でき、文字列などを評価する必要がなくなります。

var domnode = /* get the image tag */
domnode.onclick = function(){ openSingle(findId) }
于 2012-11-27T13:31:44.010 に答える