Thymeleaf - 在js引号内有html标签

时间:2017-05-04 20:10:38

标签: javascript spring thymeleaf

我在我的一个百里叶视图中有这部分代码,我通过ajax获取了一些数据:

success: function(data){
    data.forEach(function(item){
        $('#friends-list').append('<div onclick="selectUserToChat("' + item.id + '\,' + ' \'' +
            item.username + ')\'' + '); >' + item.username + '</div>');
    });
}

然而,当我尝试运行应用程序时,我收到一个错误,指出元素类型&#34; div&#34;必须遵循属性规范,&#34;&gt;&#34;或&#34; /&gt;&#34;。我该如何处理这个问题?

2 个答案:

答案 0 :(得分:1)

您应该使用CDATA块,因此Thymeleaf不会尝试将您的javascript解释为html。

<script>
    // <![CDATA[

    // ...

    success: function (data) {
        data.forEach(function (item) {
            $('#friends-list').append('<div onclick="selectUserToChat("' + item.id + '\,' + ' \'' + item.username + ')\'' + '); >' + item.username + '</div>');
        });
    }

    // ...

    // ]]>
</script>

答案 1 :(得分:0)

使用双引号,并在字符串内使用\转义它们:

.append("<div onclick=\"selectUserToChat(\"" + ...