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

您可以尝试做的一件事是在创建 DOM 节点后附加 onclick。这使您可以随心所欲地灵活,并避免必须评估字符串和其他类似的东西。

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