尝试使用 JQuery 从 JavaScript 设置 ASP.NET 页面上的 SPAN 元素的文本
我试图通过 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
一旦 DOM 加载并且可以访问元素,您应该使用
$(document).ready()
运行代码。You should use
$(document).ready()
to run your code once the DOM has loaded and the element can be accessed.试试这个:
Try this:
jQUery 选择器返回一个 HTML 列表,而不是一个元素,即使它只选择 1 个元素。
所以:
或者
另外,当脚本正在执行时,标签还不存在于 DOM 中。您应该将其包裹起来
或将脚本移动到正文的末尾。
jQUery selector returns an HTML list, not an element, even if it only selects 1 element.
So:
or
Also, when the script is being executed, the label doesn't exist in the DOM yet. you should wrap it with
or move the script to the end of the body.