使用Javascript设置ASP文本

使用Javascript设置ASP文本,javascript,asp.net,literals,Javascript,Asp.net,Literals,我的页面上有一个asp:Literal(,无法转换为标签或任何其他控件),我需要通过JavaScript更改其文本。我有以下适用于标签的代码。有人能帮忙吗 <script type="text/javascript"> function changeText() { document.getElementById('<%= Test.ClientID %>').innerHTML = 'New Text'; }

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

<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" />

函数changeText(){
document.getElementById(“”).innerHTML='newtext';
}
谢谢
更新: 我不能从文本更改,因为隐藏的代码将HTML/CSS写入信息消息,例如:

LITMessage.Text = "<div class='success'>Information Successfully Updated</div>"
LITMessage.Text=“信息已成功更新”
控件不创建自己的HTML标记。
因此,没有可以操纵的元素


相反,您可以将
包装在带有ID的
标记中。

文本是否包含html标记

如果没有,您可以将文本控件包装在一个div中并给它一个id。然后使用js替换该div中的文本

针对您的更新:

在这种情况下,由于您正在使用类
success
呈现一个div,因此我将使用jQuery更新该div中的html…它将非常简单:

$('.success').html('new html goes here');

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

假设页面上有以下文字:

<asp:Literal runat="server" Id="literalControl" />
隐藏的代码变成:

literalControl.Text = "<span id='myId'>Some text you want to change</span>";

文字是文本直接呈现到页面的方式。它将呈现的唯一HTML是设置为文本的文本字符串中包含的HTML标记。您可以使用并对其执行操作,而不是使用由div包围的文本(除非您特别需要该功能)。

控件包装在
中,然后在需要时使用jQuery清除如下所示的内容:

<div id="divMyText">
  <asp:Literal ID="MyText" runat="server"></asp:Literal>
</div>

... 或者是一个
标记,如果它只是一点点文本内容。或者使用
,它是一个包装在span中的文本。为什么不能将它更改为任何其他控件?这听起来真的很奇怪,再加上需要更改文本。@Stillgar-我更新了我的原始问题。关于为什么不能更改为标签,您的更新没有意义。这是label控件的特定用途之一。任何你可以用文字做的事情,你都可以用标签做。也就是说,我有+1到@Slaks,因为他的想法对我来说似乎是最简单的。因为从技术上讲,至少对于W3C合规性来说,你不应该在一个范围内包装一个div-主要是因为如果IE/FF等决定你不能这样做,这在将来可能无法正确呈现。你可以只使用这个div。只需给它一个唯一的ID(确保同一字符串没有多个实例)。@james更新了答案。如果可能,使用jquery更新literal中div中的文本,这是一个很好的答案,但我不希望使用jquery(不理解!)然而,我已经为其他理解jQ的人对它进行了评分。jQuery将使您在这种情况下的生活变得更加轻松。我将向任何web开发人员推荐它。网络上有大量优秀的资源,包括jQuery网站。除此之外,jQuery允许您通过css类或元素id选择页面上的元素。您可以在我上面的回答中,$(“.success”)将选择应用了
success
类的div。调用
.html
函数将允许您替换所选div中的html
document.getElementById('myId').innerHTML = 'New Text';
<div id="divMyText">
  <asp:Literal ID="MyText" runat="server"></asp:Literal>
</div>
//Clear the html inside of the div
$("#divMyText").html("");