尝试使用 JQuery 从 JavaScript 设置 ASP.NET 页面上的 SPAN 元素的文本

发布于 2024-12-29 07:57:08 字数 1658 浏览 0 评论 0原文

我试图通过 JavaScript 在 SPAN 元素中设置文本,但它不起作用。任何帮助将不胜感激。

asp.net 页面上的 HTML 如下:

<div class="TimerRowDetail TimerDaysDetail">
   <asp:Label ID="lblDays" runat="server"  Text="yyy" ClientIDMode="Static"></asp:Label>            
</div>

生成的 HTML 如下:

<div class="TimerRowDetail TimerDaysDetail">
     <span id="lblDays">yyy</span>            
 </div>

我的 JavaScript 如下:

var lblDays = $("#<%=lblDays.ClientID%>");
if (lblDays != null)
{
   alert("OK");
   lblDays.innerHTML = "XXX";
}

我看到 OK 警报,但文本从未更改为 XXX。

我正在使用 IE 9 和 FireFox 9.0.1 进行测试。

谢谢。 编辑:

好吧,我并不是说 icarus 给出的答案不正确,只是它在我的环境中不起作用。

以下是页面的源代码,包括我正在使用的脚本。它在我的机器上不起作用。

<%@ Page 
    Language="C#" 
    AutoEventWireup="true" 
    CodeBehind="DatePlay.aspx.cs" 
    Inherits="CountDownClock.WebUI.DatePlay" 
%>

<!DOCTYPE html >

<html lang="en">
<head runat="server">
    <script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
    <title></title>
    <script type="text/javascript">
        var lblDays = $("#<%=lblDays.ClientID%>");
        lblDays.html("XXX");
        alert("done");
    </script>
</head>
<body>
    <form id="form1" runat="server">
        <asp:Label ID="lblDays" runat="server"  Text="yyy" ClientIDMode="Static"></asp:Label> 
    </form>
</body>
</html>

我再次在 Windows 7 机器上使用 IE 9 和 FireFox,并在

任何建议将不胜感激。

I am attempting to set text in a SPAN element from JavaScript and it is not working. Any help would be greatly appreciated.

The HTML on the asp.net page is as follows:

<div class="TimerRowDetail TimerDaysDetail">
   <asp:Label ID="lblDays" runat="server"  Text="yyy" ClientIDMode="Static"></asp:Label>            
</div>

The generated HTML is as follows:

<div class="TimerRowDetail TimerDaysDetail">
     <span id="lblDays">yyy</span>            
 </div>

My JavaScript is as follows:

var lblDays = $("#<%=lblDays.ClientID%>");
if (lblDays != null)
{
   alert("OK");
   lblDays.innerHTML = "XXX";
}

I see the OK alert but the text never changes to XXX.

I am testing with both IE 9 and FireFox 9.0.1.

Thanks.
EDIT:

Ok, I am not suggesting the answer icarus gave is incorrect, only that it is not working in my environment.

Below is the source for the page including the script I am using. It does not work on my machine.

<%@ Page 
    Language="C#" 
    AutoEventWireup="true" 
    CodeBehind="DatePlay.aspx.cs" 
    Inherits="CountDownClock.WebUI.DatePlay" 
%>

<!DOCTYPE html >

<html lang="en">
<head runat="server">
    <script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
    <title></title>
    <script type="text/javascript">
        var lblDays = $("#<%=lblDays.ClientID%>");
        lblDays.html("XXX");
        alert("done");
    </script>
</head>
<body>
    <form id="form1" runat="server">
        <asp:Label ID="lblDays" runat="server"  Text="yyy" ClientIDMode="Static"></asp:Label> 
    </form>
</body>
</html>

Again I am using IE 9 and FireFox on a Windows 7 box with HTML5 specified in the

Any suggestions would really be appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

做个少女永远怀春 2025-01-05 07:57:09

一旦 DOM 加载并且可以访问元素,您应该使用 $(document).ready() 运行代码。

<script type="text/javascript">
    $(document).ready(function() {
      var lblDays = $('#<%=lblDays.ClientID%>');
      lblDays.html("XXX");
    });
</script>

You should use $(document).ready() to run your code once the DOM has loaded and the element can be accessed.

<script type="text/javascript">
    $(document).ready(function() {
      var lblDays = $('#<%=lblDays.ClientID%>');
      lblDays.html("XXX");
    });
</script>
一花一树开 2025-01-05 07:57:09

试试这个:

$(document).ready(function() {
  var lblDays = $("#<%=lblDays.ClientID%>");
  if (lblDays != null)
  {

    lblDays.html("XXX");
 }
}

Try this:

$(document).ready(function() {
  var lblDays = $("#<%=lblDays.ClientID%>");
  if (lblDays != null)
  {

    lblDays.html("XXX");
 }
}
虚拟世界 2025-01-05 07:57:09

jQUery 选择器返回一个 HTML 列表,而不是一个元素,即使它只选择 1 个元素。

所以:

$(lblDays).html('XXX')

或者

lblDays[0].innerHTML = 'XXX'

另外,当脚本正在执行时,标签还不存在于 DOM 中。您应该将其包裹起来

$(document).ready(function(){});

或将脚本移动到正文的末尾。

jQUery selector returns an HTML list, not an element, even if it only selects 1 element.

So:

$(lblDays).html('XXX')

or

lblDays[0].innerHTML = 'XXX'

Also, when the script is being executed, the label doesn't exist in the DOM yet. you should wrap it with

$(document).ready(function(){});

or move the script to the end of the body.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文