1

jQueryを使用してクリックしたときにハイパーリンク名を取得する方法はありますか? 次のコードがあります。jQuery の指示が必要です。

<a href="#" id="imageClick" name='<%# Eval("fileName1") %>'><asp:Image ID="myImage" name='<%# Eval("fileName1") %>' runat="server" ImageUrl='<%#"~/Image/" + Eval("fileName") %>'  /></a>

基本的に、 <%# Eval("fileName1") %>の値を返したいと思います。

ありがとう。

編集:より明確にするために、画像とラジオボタンを持つlistViewを含むポップアップページがあります。要件は、ラジオ ボタンをクリックした場合に、その特定の選択肢の値を取得してポップアップを閉じる必要があることです。また、値を親ウィンドウに戻しています。これは私が持っているものです:

    $(document).ready(function () {
    $("#form1").change(function () {

        var val = "";

        if ($('input:radio[name=myRadio]:checked').val()) {
            val = $('input:radio[name=myRadio]:checked').val();
        }

        if (val != "") {

            $(window.opener.document).find('#txtLogos').val(val);
            // Close the window
            window.close();
        }
    });
});

ラジオボタンの1つをクリックすると、これはうまく機能します。しかし今、彼らは、画像をクリックすると同じ結果が欲しいという別の要件を追加しました(明らかに、ラジオボタンの機能を中断することはありません).

4

2 に答える 2

4

this.nameクリックハンドラー内を使用してアクセスできます。thisこれが Dom 要素です (要素の属性値を取得するのに jquery は必要ありません) ので、要素の name 属性に直接アクセスするだけです。

$('#imageClick').click(function(){
   alert(this.name);
});

編集

画像をクリックしても、フォームの変更はトリガーされません。入力、選択、テキストエリアなどとは異なります。したがって、画像クリックイベントでフォーム変更を手動でトリガーする必要があります(フォーム変更イベントをトリガーするラジオボタンクリックをシミュレートするため)。

クリック ハンドラーを画像にバインドして、クラスを追加します。

$('yourimageselector').click(function(){

      $(this).toggleClass('checkedImage'); // Add a class on first click and again clicked on it remove the class to say it is turned off. If you dont want a turn off functionality simply say :

     //$(this).addClass('checkedImage'); //or if this is the only class then this.className = 'checkedImage' classList is not yet supported in all browsers.

     $('yourform').change(); //as this is image it wont trigger form change event so you need to manually trigger form's change event (only for input, select, textarea etc form change will be triggered).       

});

そしてあなたのフォームイベントで:

$("#form1").change(function () {

        var imgNames= $('.checkedImage')
              .map(function(){return this.name; })
              .get(); // Will get you all the image names in an array.
   //if it is just one image then simply do if($('.checkedImage').length > 0) $('.checkedImage')[0].name, 

   //Code follows

  });

フィドル

于 2013-06-21T17:59:59.890 に答える
2

これは、クリックのイベント ハンドラーでも機能します。

document.getElementById("new-answer-activity").name
于 2013-06-21T18:05:35.147 に答える