2012-11-27 25 views
2

我的javascript創建了一行html。當javascript創建html時,如何通過onclick事件傳遞變量?

該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

而是寫HTML在JavaScript,你應該做'.createElement的()' 。也請不要在你的HTML中使用內聯JS。 – PeeHaa

+0

如果你想要引用id,嘗試使用反斜槓轉義單引號? –

回答

3

你可以用一個反斜槓轉義引號,像這樣

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

和其他意見建議您應避免內嵌JavaScript

+0

感謝您的意見,這對我很好。 – xRuhRohx

0

逃逸單引號,像這樣:

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

嘗試加入\'將解決問題

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

您可以嘗試的一件事是在創建DOM節點後附加onclick。這可以讓你像你想要的那樣靈活,並且避免必須評估字符串和其他類似的東西。

var domnode = /* get the image tag */ 
domnode.onclick = function(){ openSingle(findId) } 
0

下面是答案:用轉義字符\的「字符

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

也可以嘗試concating &lsquo;&rsquo;

相關問題