使用Javascript设置ASP Literal文本

Jam*_*mes 7 javascript asp.net literals

我在我的页面上有一个asp:Literal(无法转换为Label或任何其他控件),我需要更改通过JavaScript的文本.我有以下代码适用于Label.有人可以帮忙吗?

<script type="text/javascript">
        function changeText() {
            document.getElementById('<%= Test.ClientID %>').innerHTML = 'New Text';
        }
    </script>

        <a href="#" onclick='changeText()'>Change Text</a>
        <asp:Label id="Test" runat="server" Text="Original Text" />
Run Code Online (Sandbox Code Playgroud)

谢谢


更新: 我无法从文字中更改,因为后面的代码将HTML/CSS写入信息消息,例如:

LITMessage.Text = "<div class='success'>Information Successfully Updated</div>"
Run Code Online (Sandbox Code Playgroud)

SLa*_*aks 19

<asp:Literal>控件不会创建自己的HTML标记.
因此,没有可以操作的元素.

相反,你可以包装<asp:Literal><div>与ID标签.


Jus*_*ner 8

ASP.NET Literal不会向页面添加任何标记.因此,您必须将内容包装在某个容器中,以便可以通过JavaScript进行编辑:

假设您在页面上有以下文字:

<asp:Literal runat="server" Id="literalControl" />
Run Code Online (Sandbox Code Playgroud)

并且通过代码设置文本(因为如果你不是,你可以在标记中创建span/div开头而不是这个问题):

literalControl.Text = "Some text you want to change";
Run Code Online (Sandbox Code Playgroud)

后面的代码变成:

literalControl.Text = "<span id='myId'>Some text you want to change</span>";
Run Code Online (Sandbox Code Playgroud)

而JavaScript将是:

document.getElementById('myId').innerHTML = 'New Text';
Run Code Online (Sandbox Code Playgroud)


ste*_*776 5

文字是否包含 html 标记?

如果没有,您可以将文字控件包装在 div 中并为其指定 id。然后使用js替换该div内的文本。

响应您的更新:

在这种情况下,由于您正在渲染一个带有 类的 div success,我将使用 jQuery 来更新该 div 中的 html...它会很简单:

$('.success').html('new html goes here');
Run Code Online (Sandbox Code Playgroud)


atc*_*way 5

将控件包装<asp:literal>在 a 中<div>,然后根据需要使用 jQuery 清除内容,如下所示:

<div id="divMyText">
  <asp:Literal ID="MyText" runat="server"></asp:Literal>
</div>
Run Code Online (Sandbox Code Playgroud)

以下是如何使用 jQuery 清除文本:

//Clear the html inside of the div
$("#divMyText").html("");
Run Code Online (Sandbox Code Playgroud)