Javascript 未捕获的SyntaxError意外标识符

Javascript 未捕获的SyntaxError意外标识符,javascript,Javascript,我得到这个错误:未捕获的SyntaxError意外标识符 {% extends 'tweets/base.html' %} {% block content %} Welcome to TweetMe <div id='tweets'></div> <script> const tweetsElement = document.getElementById('tweets') tweetsElemen

我得到这个错误:未捕获的SyntaxError意外标识符

{% extends 'tweets/base.html' %}
{% block content %}
    Welcome to TweetMe

    <div id='tweets'></div>

    <script>
        const tweetsElement = document.getElementById('tweets')
        tweetsElement.innerHTML = 'loading...'

        const xhr = new XMLHttpRequest()
        const method = 'GET'
        const url = 'tweets/'
        const responseType = "json"

        function likeBtn() {
            return '<button class='btn btn-primary'>Like</button>'
        }

        function formatTweetElement(tweet) {
            console.log('HELLO');
            var formattedTweet = `
                <div class="mb-4" id="tweet-id-${tweet.id}">
                    <p>${tweet.user}</p>
                    <p>${tweet.content}</p>
                    ${likeBtn()}
                </div>`;
            console.log(formattedTweet)
            return formattedTweet
        }

        xhr.responseType = responseType
        xhr.open(method, url)
        xhr.onload = function() {
            const serverResponse = xhr.response
            var listedItems = serverResponse.response
            console.log(listedItems)
            var finalTweetStr = ""
            for (i in listedItems) {
                var tweetObj = listedItems[i]
                finalTweetStr += formatTweetElement(tweetObj)
            }
            tweetsElement.innerHTML = finalTweetStr
        }
        xhr.send()
    </script>
{% endblock content %}
{%extends'tweets/base.html%}
{%block content%}
欢迎来到我这里
const tweetsElement=document.getElementById('tweets')
tweetsElement.innerHTML='loading…'
const xhr=new XMLHttpRequest()
常量方法='GET'
const url='tweets/'
const responseType=“json”
函数likeBtn(){
返回“Like”
}
函数formatTweetElement(tweet){
log('HELLO');
var formattedTweet=`
${tweet.user}

${tweet.content}

${likeBtn()} `; console.log(格式化tweet) 返回格式化的tweet } xhr.responseType=responseType xhr.open(方法、url) xhr.onload=函数(){ const serverResponse=xhr.response var listedItems=serverResponse.response console.log(listedItems) var finalTweetStr=“” for(我在列表中){ var tweetObj=listedItems[i] finalTweetStr+=formatTweetElement(tweetObj) } tweetsElement.innerHTML=finalTweetStr } xhr.send() {%endblock内容%}
请忽略
{%block content%}
部分,它在Django中渲染时有效。 有人能帮我纠正错误吗?我只知道
部分有问题。

问题出在

function likeBtn() {
        return '<button class='btn btn-primary'>Like</button>'
    }
函数likeBtn(){
返回“Like”
}
你使用同样的引号

使用

函数likeBtn(){
返回“Like”
}

您的“likeBtn”函数到处都使用单引号,因此您过早地关闭字符串文字。不相关,但将其提取到函数中似乎毫无意义。Dave Newton非常感谢!我把这个按钮作为一个单独的功能,因为我想给它添加更多的功能,而不想使它过于复杂。明白了。一般来说,重构是一件非常好的事情(有人指责我重构太多)。你比我更清楚你的需求——并不是有意阻止合理的重构!谢谢这对我帮助很大!
function likeBtn() {
        return '<button class="btn btn-primary">Like</button>'
    }