JQuery:未捕获的 SyntaxError:无效或意外的令牌

Posted

技术标签:

【中文标题】JQuery:未捕获的 SyntaxError:无效或意外的令牌【英文标题】:JQuery: Uncaught SyntaxError: Invalid or unexpected token 【发布时间】:2018-08-25 04:46:01 【问题描述】:

我也在使用 socket.io。有一个 html 表格,当用户单击按钮时,我的代码应该用新表格替换该表格,但是它在标题中给出了错误消息。

这是我的代码: HTML:

<table>
                </tbody>
                    <tr>
                        <td class="1"></td>
                        <td class="2"></td>
                        <td class="3"></td>
                    </tr>
                    <tr>
                        <td class="4"></td>
                        <td class="5"></td>
                        <td class="6"></td>
                    </tr>
                    <tr>
                        <td class="7"></td>
                        <td class="8"></td>
                        <td class="9"></td>
                </tr>
                </tbody>
            </table>

jQuery 脚本:

socket.on('resetGranted', function() 
        $('table').replaceWith('<table>    //says error is here
                </tbody>
                    <tr>
                        <td class="1"></td>
                        <td class="2"></td>
                        <td class="3"></td>
                    </tr>
                    <tr>
                        <td class="4"></td>
                        <td class="5"></td>
                        <td class="6"></td>
                    </tr>
                    <tr>
                        <td class="7"></td>
                        <td class="8"></td>
                        <td class="9"></td>
                </tr>
                </tbody>
            </table>');
    )

我该如何解决这个问题?

【问题讨论】:

尝试使用 .html() 而不是 .replaceWith() 不要认为这是导致您的错误的原因,但请注意,您的 javascript 中的开始 tbody 标记实际上是一个结束标记,因此您可能需要修复它。跨度> 【参考方案1】:

对多行字符串使用反引号`

console.log(`
    multi
    line
    string
    here
`);

【讨论】:

【参考方案2】:
socket.on('resetGranted', function() 
var htmlContent='<table>
            </tbody>
                <tr>
                    <td class="1"></td>
                    <td class="2"></td>
                    <td class="3"></td>
                </tr>
                <tr>
                    <td class="4"></td>
                    <td class="5"></td>
                    <td class="6"></td>
                </tr>
                <tr>
                    <td class="7"></td>
                    <td class="8"></td>
                    <td class="9"></td>
            </tr>
            </tbody>
        </table>';
        $('table').replaceWith(htmlContent);
    )

【讨论】:

以上是关于JQuery:未捕获的 SyntaxError:无效或意外的令牌的主要内容,如果未能解决你的问题,请参考以下文章

jQuery:未捕获的错误:语法错误,无法识别的表达式

未捕获的 SyntaxError:'' 字符串文字包含未转义的换行符

作为 ID 的 JQuery 变量导致未捕获错误:语法错误,无法识别的表达式:'#cell32'

如何防止 jQuery tablesorter 中的“未捕获的异常:语法错误,无法识别的表达式”?

未捕获的 SyntaxError:意外的令牌导出 (Redux)

未捕获的 SyntaxError:意外的令牌导入 - Reactjs