【问题标题】:how to show strings with tags (<>) correctly in the interface如何在界面中正确显示带有标签(<>)的字符串
【发布时间】:2021-11-05 01:20:24
【问题描述】:

我的标签内的字符串没有显示,因为我需要连接它,我该怎么做?

success: function (response) {
    var tbody = "";
    $.each(response.all_legends, function (key, legend) {
        tbody += '<tr>'+
                    '<td>'+'<AGE>'+'</td>'+
                    '<td>'+legend.text+'</td>'+
                '</tr>';
        });
    $('#legend-list tbody').html(tbody)
}

我尝试添加额外的+ 和引号,但标签仍然没有显示

澄清:

legend.text 有效,因为它是一个常规字符串。它的&amp;lt;AGE&amp;gt; 标签没有出现。我尝试console.log表格,它在控制台中正常显示但没有出现在

更新:

数据库:

界面:

为了澄清,因为第一个示例是修复标签的测试。我需要进一步提到该字符串具有标签,因此我不能简单地将其封装在某种转义中,例如&amp;lt;AGE&amp;gt

这是我尝试过的:

'<td><a href="" onclick="appendMessageText(this)" class="blue-1">'+escape(legend.value)+'</a></td>'+

我可以使用带有legend.value 的循环检索数据库列(第一个屏幕截图)。 添加转义符会将标签变成其实体(第二个屏幕截图)。 如何修复带有标签的字符串?

【问题讨论】:

  • 那么,您的问题是legend.text 没有显示任何内容?如果是这样,我认为您必须使用response.data.all_legends 而不是response.all_legends。如果这不起作用,您可以在$.each 之前执行console.log(response) 并显示为图像吗?应该有data 或类似名称。
  • 我想我需要澄清一下,legend.text 有效,因为它是一个常规字符串。它的&amp;lt;AGE&amp;gt; 标签没有出现。我尝试 console.log 表格,它在控制台中正常显示,但没有出现在 UI 中。
  • 发生这种情况是因为&amp;lt;AGE&amp;gt; 像普通的 HTML 标签一样被插入...你必须“转义”它。试试&amp;lt;AGE&amp;gt; 而不是&amp;lt;AGE&amp;gt;&amp;lt;&amp;gt; 只是 HTML 实体。
  • 实际上为此打开了一个新问题,因为我的字符串有标签:stackoverflow.com/questions/69158840/…

标签: sql function tags escaping concatenation


【解决方案1】:

我认为这段代码很有意义。如果 '' 字符在开头和结尾,则此代码可以帮助您

const editText = (text) => `<a><</a><a>${text.replace('<','').replace('>','')}</a><a>></a>`;
 
success: function (response) {
var tbody = "";
$.each(response.all_legends, function (key, legend) {
    tbody += '<tr>'+
                '<td>'+editText(legend.value)+'</td>'+
                '<td>'+legend.text+'</td>'+
            '</tr>';
    });
$('#legend-list tbody').html(tbody)

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-29
    • 2019-08-17
    • 1970-01-01
    • 2014-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-20
    相关资源
    最近更新 更多