用jquery获取标签文本

时间:2011-08-07 12:06:21

标签: jquery asp.net button label onclientclick

我想做的很简单,但我没有成功。我的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>

8 个答案:

答案 0 :(得分:32)

试试这个:

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>

答案 1 :(得分:16)

试试这个

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

答案 2 :(得分:3)

尝试使用html()函数。

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

你也错过了#来使它成为你正在寻找的ID。没有#,它正在寻找标签类型。

答案 3 :(得分:1)

尝试document.getElementById('&lt;%= Label1.ClientID%&gt;')。text或innerHTML OTHERWISE LOAD JQUERY SCRIPT并将您的代码原样放置....

答案 4 :(得分:1)

尝试:

<%=this.Label1.Text%>

答案 5 :(得分:1)

这里没有解决方案对我有用。取而代之的是,我向标签添加了一个类,并能够通过这种方式进行选择。

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

$(".myLabel1Class").val()

并且,正如其他人所提到的,请确保已加载了jQuery。

答案 6 :(得分:0)

您所写的行

  

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

您未添加#。应该是这样

  

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

我也不喜欢使用这种方法

那是因为如果要在母版页或嵌套母版页中调用控件,或者是从母版页中调用控件。还可以控制Repeater。无论MVC。这会引起问题。

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

  

$('#ControlID')

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

  

ClientIDMode =“静态”

控件中的

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

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

答案 7 :(得分:-1)

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