Jquery prop()返回undefined

时间:2012-05-09 21:00:37

标签: jquery

我是Jquery的新手,并尝试发出http请求,这样我就不必离开当前页面,但是

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

似乎没有用 console.log(getURL)显示“undefined”

有源代码(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">

2 个答案:

答案 0 :(得分:2)

您需要使用

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

而不是

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

在第一种情况下,$(this)指向您刚刚单击的锚点的jquery对象,在第二种情况下 - 它指向某个甚至未被您的示例覆盖的元素

实例:http://jsfiddle.net/zerkms/YJRLR/

答案 1 :(得分: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. 您可以使用this.href获取href的值。没有必要使用jQuery。
  3. 如果您想将this的值设置为jQuery对象,则可以使用$(this)$(e.target.id)执行此操作。当它是CSS选择器时,你使用jQuery字符串。当您已经拥有对象引用时,可以直接使用变量值。