web-dev-qa-db-ja.com

jqueryでラベルのテキストを取得

私は非常に簡単なことをしたいのですが、私は成功していません。 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>
22
Rougher

これを試して:

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>
32
kleinohad

これを試して

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

Html()関数を使用してみてください。

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

また、検索対象のIDにするために#が欠落しています。 #がなければ、タグタイプを探します。

3
beatgammit

ここで解決策はありませんでした。代わりに、ラベルにクラスを追加し、そのように選択することができました。

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

$(".myLabel1Class").val()

そして、他の人が述べたように、jqueryがロードされていることを確認してください。

1
DrCJones

試してください:

<%=this.Label1.Text%>
1
ANeme

document.getElementById( '<%= Label1.ClientID%>')。textまたはinnerHTMLを試してください。

1
Rajnikant

あなたが書いた行のために

var g = $( '<%= Label1.ClientID%>')。val(); //また、.text()と.html()を試しました

#の追加に失敗しました。こんな感じ

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

また、私はこの方法を使用することを好まない

これは、マスターページまたはネストされたマスターページでコントロールを呼び出す場合、またはマスターからページでコントロールを呼び出す場合です。 Repeaterのコントロールも。 MVCに関係なく。これにより問題が発生します。

コントロールのIDを常に直接呼び出す必要があります。このような

$( '#ControlID')

これは単純明快です。しかし、設定することを忘れないでください

ClientIDMode = "Static"

コントロール内で、レンダリング後も同じID名のままになります。これは、ASP.netが一部のコンテキストでHTMLレンダリングファイルのID名を変更するためです。つまり、ページがマスターページの場合、コントロール名はConetentPlaceholderName_controlIDになります。

幸運の質問をクリアすることを願っています

0
Omar Kamel