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

Attempting to Set Text of SPAN element on asp.net page from JavaScript using JQuery

本文关键字:SPAN 元素 文本 net asp JQuery 设置 JavaScript      更新时间:2023-09-26

我试图从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>

我再次在Windows7盒子上使用IE 9和FireFox,在

任何建议都将不胜感激。

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

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

试试这个:

$(document).ready(function() {
  var lblDays = $("#<%=lblDays.ClientID%>");
  if (lblDays != null)
  {
    lblDays.html("XXX");
 }
}
jQUery选择器返回一个HTML列表,而不是一个元素,即使它只选择了一个元素。

因此:

$(lblDays).html('XXX')

lblDays[0].innerHTML = 'XXX'

此外,在执行脚本时,DOM中还不存在标签。你应该用包起来

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

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