2014-09-24 97 views
0

我使用JQuery的对话框,显示其中有HTML标签的一些文本标签包括:如何显示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标签,而不是只显示为纯文本?

+1

我删除了你的“另外,”x“缺少关闭窗口。”因为你应该只对每个问题提出一个问题。 – 2014-09-24 02:51:49

+0

谢谢John Saunders :) – SearchForKnowledge 2014-09-24 02:52:14

+0

顺便说一句,我建议你将'.html'语句分解成小块,在调试器中运行,看看是什么。特别是,'.closest(“tr”)'如何带回整个文档? 'html'标签来自哪里? – 2014-09-24 02:53:32

回答

1

删除“对话框”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" 
    }); 

} 
+0

我需要用于JQuery对话框的Dialog DIV。 – SearchForKnowledge 2014-09-24 02:31:50

+1

不,你不知道。您可以创建一个div,将其附加到正文并将THAT用于您的jQuery对话框。该div不必被硬编码 - 我使用jQuery对话框很多 - 在你告诉我它不能完成之前尝试它:) – 2014-09-24 02:47:06

+0

:PI只是好奇......可以做我肯定:)我会测试一下。 – SearchForKnowledge 2014-09-24 02:48:27

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

此语法错误。你不能用逗号分隔类名和jquery元素,并用'$'来包装它。逗号是CSS选择器一样.gLine, .herpDerp

+0

因此,代码是我应该用它来替代它? – SearchForKnowledge 2014-09-24 02:07:18

+0

你想用这种说法得到什么?这没有意义。 – 2014-09-24 02:09:44

+1

@NickManning他正在使用['jQuery(selector [,context])'](http://api.jquery.com/jQuery/#jQuery1)表示法;它不是最有效的,但它的工作原理。 – Mottie 2014-09-24 02:36:39

1

试试这个:

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

/这几乎帮助了我...谢谢:) – SearchForKnowledge 2014-09-24 03:04:26

+0

我不想每次都追加。我想每次都使它变新。我可以更改追加到.TEXT()吗? – SearchForKnowledge 2014-09-24 12:59:18

+0

使用$(“#infoShow”)。html(“”);然后追加:) – 2014-09-24 13:03:47

1

在跨度ID “无论id为”

可以使用 的.text():

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

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

相关问题