Jquery - 使用“this”获取属性

时间:2012-03-07 19:51:28

标签: javascript jquery this

这可能是非常容易的事情,但我似乎无法让这个工作,我不知道为什么。我安装了jquery,当我点击它时,我试图获得“this”元素的属性。现在我的代码看起来像这样:

url = $(this).attr("href")

当我通过点击链接调用此函数时,它告诉我var“url”未定义。所以当我点击链接时,显然它没有拿起“这个”。我试图传递一个锚标记的href用作我的变量。

我在俯瞰什么?再说一遍,我知道这很简单,但我似乎无法弄清楚,所以谢谢你花时间来帮助我。

感谢。

<script type="text/javascript">
url = "push1";

$("a").live("click", function(event) {
    event.preventDefault();     
    url = $(this).attr("href");
})
$.ajax({
    type: "get",
    url: "/"+url+".php",
    data: "",
    dataType: "html",
    success: function(html){
        jQuery('#Right_Content').hide().html(html).fadeIn(1000);
    },

})
;
</script>

HTML:

<body>

<a href="push1" >Image 1</a>
<a href="push2" >Image 2</a>  

<div id="Right_Content"></div>

</body>

3 个答案:

答案 0 :(得分:9)

这应该对你有用

$(function(){    
    $(".link").click(function(){
       var url=$(this).attr("href");
       alert(url);
        return false;

    });       

});​

假设您使用名为“link”的css类定位所有锚标记

以下是工作示例:http://jsfiddle.net/L99mM/2/

修改:根据您在问题中发布的代码

你应该在你的ajax调用后调用preventDefault。并且在ajax调用之后应该有结束括号

$("a").live("click", function(event) {      
      var targeturl = $(this).attr("href");

      $.ajax({
               type: "get",
               url: "/"+targeturl +".php",
               data: "",
               dataType: "html",
               success: function(html){
                   jQuery('#Right_Content').hide().html(html).fadeIn(1000);
               }

           });  // closing for  ajax
        event.preventDefault(); 

  });  // closing for click  event binding 

答案 1 :(得分:0)

<script type="text/javascript">
var url = "push1";

function getContent(){
    $.ajax({
        type: "get",
        url: "/"+url+".php",
        data: "",
        dataType: "html",
        success: function(html){
        jQuery('#Right_Content').hide().html(html).fadeIn(1000);
    });
}

$("a").live("click", function(event) {
    event.preventDefault();     
    url = $(this).attr("href");
    getContent();
});

getContent();
</script>

答案 2 :(得分:0)

你不需要“这个”,你需要事件的目标:

$("a").live("click", function(event) {
    event.preventDefault();     
    url = event.target.href;
})

工作小提琴

http://jsfiddle.net/3LvCm/