28

我想做很简单的事情,但我没有成功。我的 asp.net 页面上有按钮和标签,我想在单击按钮后获取标签文本。这是我的代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm2.aspx.cs" Inherits="DynamicWebApplication.WebForm2" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">
    <title></title>    
    <script type="text/javascript">
        function f() 
        {
            var g = $('<%=Label1.ClientID%>').val();  // Also I tried .text() and .html()
            alert(g);
        }
    </script>
</head>

<body>
    <form id="form1" runat="server">
        <div>
            <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
            <p></p>
            <asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="f();"/>
        </div>
    </form>
</body>

4

8 回答 8

33

试试这个:

var g = $('#<%=Label1.ClientID%>').val();

或这个:

var g = $('#<%=Label1.ClientID%>').html();

你错过了#

在头部添加这个:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
于 2011-08-07T12:10:52.113 回答
17

试试这个

var g = $('#<%=Label1.ClientID%>').text();
于 2011-08-07T12:14:38.070 回答
3

尝试使用 html() 函数。

$('#<%=Label1.ClientID%>').html();

您还缺少 # 以使其成为您正在搜索的 ID。没有#,它正在寻找一个标签类型。

于 2011-08-07T12:09:00.607 回答
2

这里没有解决方案对我有用。相反,我在标签中添加了一个类,并且能够以这种方式选择它。

<asp:Label ID="Label1" CssClass="myLabel1Class" runat="server" Text="Label"></asp:Label>

$(".myLabel1Class").val()

而且,正如其他人所提到的,请确保您已加载 jquery。

于 2018-09-30T10:39:36.233 回答
1

尝试:

<%=this.Label1.Text%>
于 2015-04-28T11:04:07.887 回答
0

尝试 document.getElementById('<%=Label1.ClientID%>').text 或 innerHTML 否则加载 JQUERY SCRIPT 并按原样放置您的代码....

于 2012-11-30T12:30:05.323 回答
0

对于你写的那一行

var g = $('<%=Label1.ClientID%>').val(); // 我也试过 .text() 和 .html()

你错过了添加#。应该是这样的

var g = $('#<%=Label1.ClientID%>').text();

我也不喜欢使用这种方法

这是因为如果您正在调用母版或嵌套母版页中的控件,或者您正在从母版调用页面中的控件。也控制中继器。不管MVC。这会导致问题。

您应该始终直接调用控件的 ID。像这样

$('#ControlID')

这很简单明了。但不要忘记设置

ClientIDMode="静态"

在您的控件中,在渲染后保持相同的 ID 名称。这是因为 ASP.net 将在某些情况下修改 HTML 呈现文件中的 ID 名称,即页面用于母版页,控件名称将为 ConetentPlaceholderName_controlID

我希望它能解决这个问题祝你好运

于 2019-01-15T09:06:16.460 回答
-2

很简单,为该标签设置一个特定的值(例如 XXXXXXX)并运行它,打开输出的 html 源(在浏览器中)并查找 XXXXXXX,你会看到类似这样<span id="mylabel">XXXXXX</span>的东西,这就是你想要的,<span>(我认为它通常与 asp 代码中的标签名称相同)现在您可以通过 innerHTML 或 JQuery 中的其他方法获取它的值

于 2011-08-07T12:15:40.497 回答