0

私はJqueryが初めてで、現在のページを離れる必要がないようにhttpリクエストを作成しようとしていますが、

var getURL = $("#callerId").attr("href"); 

console.log(getURL) が「未定義」と表示される

ソース コードがあります (callerId までのすべてが正しいはずです)。

    <script type = "text/javascript">

$(document).ready(function() {
    $('ul.hrefURL a').click(function(dontRedirect) {
        dontRedirect.preventDefault(); 
        var callerId = event.target.id;
        var getURL = $("#callerId").attr("href");
        $.ajax({
            type : "GET",
            url: getURL,
            success: function(response){
                alert($('#response'));  
            }
        });

    });
});

</script>


<a href="javascript:document.location = TTS1" id = "1T">
4

2 に答える 2

2

使用する必要があります

var getURL = $(this).attr("href");

それ以外の

var getURL = $("#callerId").attr("href");

最初のケース$(this)では、クリックしたばかりのアンカーのjqueryオブジェクトを指し、2番目のケースでは、例ではカバーされていない要素を指しています

実際の例: http://jsfiddle.net/zerkms/YJRLR/

于 2012-05-09T21:03:45.253 に答える
1

あなたはこれをするつもりだったと思います:

<script type = "text/javascript">

$(document).ready(function() {
    $('ul.hrefURL a').click(function(e) {
        e.preventDefault(); 
        var getURL = this.href;
        $.ajax({
            type : "GET",
            url: getURL,
            success: function(response){
                alert($('#response'));  
            }
        });

    });
});

</script>

以前のコードについて知っておくべきこと:

  1. thisイベントの原因となったオブジェクトに自動的に設定されるため、取得する必要はありませんtarget.id
  2. href の値は で取得できますthis.href。そのために jQuery を使用する必要はありません。
  3. の値をthisjQuery オブジェクトにしたい場合は、$(this)または を使用し$(e.target.id)ます。CSS セレクターの場合は、jQuery で文字列を使用します。オブジェクト参照が既にある場合は、変数値を直接使用します。
于 2012-05-09T21:05:32.053 に答える