如何显示HTML生成的文本而不是标签

时间:2014-09-24 01:51:17

标签: jquery html asp.net jquery-ui jquery-ui-dialog

我正在使用JQuery Dialog显示一些包含HTML标记的文本:

<div id="dialog" style="display: none">
    <p id='infoShow'></p>
</div>

显示数据的JQuery是:

function test(element) {

        $("#infoShow").html($(".gLine", $(element).closest("tr")).html());
        $("#dialog").dialog({
            title: "View Guideline",
            buttons: {
                Ok: function () {
                    $(this).dialog('close');
                }
            },
            modal: true,
            width: "450px"
        });

    }

由ASP LinkBut​​ton调用:

<asp:LinkButton runat="server" ID="btnShow3" CssClass="btnSearch3" Text="VIEW" OnClientClick="javascript:test(this);return false;"></asp:LinkButton>

虽然我使用.html()来显示输出,但它仍然显示HTML标记而不是输出:

enter image description here

如何修改代码以便生成HTML标记而不是仅显示为纯文本?

4 个答案:

答案 0 :(得分:1)

试试这个:

$("#infoShow").append( $( HTML_TEXT_STRING));

答案 1 :(得分:1)

在你的跨度id“无论id是什么”

你可以用 的.text():

$('#your-span-id').text($('#your-span-id').text());

这将删除所有html标签,然后您可以在模态上显示它。你必须使用你的跨度id两次,因为机制的性质。这应该工作。

答案 2 :(得分:1)

删除“dialog”div和“infoShow”标签,因为您不需要它们。

然后,不是写入现有的div,而是将一个新的div添加到body元素作为对话框,如下所示:

function test(element) {

    $("<div></div>").appendTo('body')
    .html($(".gLine", $(element).closest("tr")).html())
    .dialog({
        title: "View Guideline",
        buttons: {
            Ok: function () {
                $(this).dialog('close');
            }
        },
        modal: true,
        width: "450px"
    });

}

或者,你可以这样做:

function test(element) {

    $("<div>" + $(".gLine", $(element).closest("tr")).html() + "</div>").appendTo('body')
    .dialog({
        title: "View Guideline",
        buttons: {
            Ok: function () {
                $(this).dialog('close');
            }
        },
        modal: true,
        width: "450px"
    });

}

答案 3 :(得分:0)

$(".gLine", $(element).closest("tr"))

这种语法错了。您不能用逗号分隔类名和jquery元素,并用'$'包装它。逗号适用于.gLine, .herpDerp

等css选择器