2014-09-04 67 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>