javascript中的ReferenceError。在追加函数中未定义字符

时间:2013-03-13 10:54:59

标签: jquery html referenceerror

使用jquery中的append函数添加标签。

这是阻止

的jquery代码
tabSections(data).forEach(function(section){
    $("#sections nav ul").append("<li id='section_"+section+"' class='list_section' onClick='addText("+section+")'>" + section + "</li>");
});

来自浏览器的HTML代码

<li onclick="addText(287585-C)" class="list_section" id="section_287585-C">287585-C</li>

当我点击 li 标签时,它会调用已定义的函数 addText(section){} 。 我得到的参考错误是它不能识别我作为完整字符串传递给我的函数但是作为2个数字(减法)。这就是为什么会出现一个错误,说明未定义C。

我正在尝试获取一个看起来像这样的HTML代码

<li onclick="addText('287585-C')" class="list_section" id="section_287585-C">287585-C</li>

如何修改我的javascript代码,以便我在HTML代码中出现2个引号(和/或javascript将参数解释为字符串而不是2个数字)? 单击标签

后会出现错误

toString()函数也没有做任何事情。

提前致谢

3 个答案:

答案 0 :(得分:1)

tabSections(data).forEach(function(section){
    $("#sections nav ul").append('<li id="section_'+section+'" class="list_section" onClick="addText(\''+section+'\')">' + section + '</li>');
});

没有运行它......但是试试吧

答案 1 :(得分:0)

更改为:

        $("#sections nav ul").append(
                             "<li id='section_'"+section+"'" 
                                  class='list_section' 
                                  onClick='addText("'+section+'")>' + section + 
                              "</li>");

答案 2 :(得分:0)

您需要添加字符串分隔符,但使用\ ...

对其进行转义
tabSections(data).forEach(function(section){
    $("#sections nav ul").append("<li id='section_"+section+"' class='list_section' onClick='addText(\""+section+"\")'>" + section + "</li>");
});