2014-09-04 63 views
0

我有以下問題:大廈串用JavaScript

我試圖建立一個簡單的字符串這樣的:

for(var x in classicde) { 
    specificWines += "<li><a onClick='displayWine(" + "'GV'" + ")'>" + classicde[x] + "</a></li>"; 
} 

然後我插入這個字符串中的DOM結構:

var list = document.getElementById("leftmenu-list"); 
list.innerHTML = specificWines; 

結果如下(類似於我縮短了它的內容):

<ul id="leftmenu-list"> 
    <li><a onclick="displayWine(" gv')'>Classic1</a></li> 
</ul> 

因此,在onclick事件中存在問題,我無法找到問題。

+0

爲什麼你需要你的'onClick'的括號和「GV」之間的串聯? – 1252748 2014-09-04 23:45:13

回答

0

您的報價有誤'displayWine(" + "'GV'" + ")'它應該是'displayWine(" + "\"GV\"" + ")'所以單引號包含雙引號,並且不會打破渲染屬性。 \用於轉義報價,所以它不會打破JS代碼。

for(var x in classicde) { 
    specificWines += "<li><a onClick='displayWine(" + "\"GV\"" + ")'>" + classicde[x] + "</a></li>"; 
} 

否則,正如你所看到的,你最終得到的是單引號打破屬性。如果你在字符串中傳遞一個字符串,你需要確保你使用了不同的引號。

這個現在應該呈現爲

<li><a onclick='displayWine("gv")'>Classic1</a></li>