Javascript写HTML到页面错误

时间:2016-04-24 13:41:07

标签: javascript html dom

我已经阅读了参数列表'之后'未捕获的SyntaxError:缺失'的所有SO帖子,但没有一个能解决这个问题。我不明白出了什么问题。

我正在为数据库返回JSON并为每个结果编写HTML。

function addRow(str, count) {
str = str.substr(0, str.length -5);
document.getElementById("comments").innerHTML += '<br /><br /><div  
class="input-group"><span class="input-group-btn"><button class="btn btn-success" 
onclick="javascript:del(' + "'" + str + "'" + ');" type="button">Delete</button></span><p class="form-control">'+str+'</p><span class="input-group-btn"><button onclick="javascript:publish('+str+');" class="btn btn-success" type="button">Publish</button>
</span></div>';
}

这是创建HTML的代码。

在点击“发布按钮”之前,我没有收到错误消息。所以我假设这个代码或发布函数有问题。

function publish(text) {
xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET","http://example.com/test.php?type=upcom&text="+text,true);
xmlhttp.send();
xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            document.getElementById("comments").innerHTML = "";
            loadComment();
        }
    }
}

以上是发布方法。

任何人都可以在参数列表后发现任何会导致'未捕获的SyntaxError:缺失'的内容吗?

我花了好几个小时来解决这个问题。

由于

1 个答案:

答案 0 :(得分:0)

我认为这是问题所在,没有引号:

<button onclick="javascript:publish('+str+');">

因此,如果 str 是“我的评论”,则会产生错误:

<button onclick="javascript:publish(my comments);">

解决这样的用法:

<button onclick="javascript:publish(\''+str.replace(/\'/g,'\\'') +'\')

因此,如果 str 是“我的评论”,则会生成:

<button onclick="javascript:publish('my comments');">

所以如果 str 是“calmcalmuncle的评论”,会产生:

<button onclick="javascript:publish('calmcalmuncle\'s comments');">

编辑:

你也需要解决这个问题:

<button onclick="javascript:del(' + "'" + str + "'" + ');">Delete</button>

同样的方式:

<button onclick="javascript:del(\''+str.replace(/\'/g,'\\'');">Delete</button>