Jquery - 使用“this”获取属性

问题描述 投票:0回答:4

这可能是一件非常简单的事情,但我似乎无法让它工作,我不知道为什么。我安装了 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>
javascript jquery this
4个回答
13
投票

这应该适合你

$(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 

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>

0
投票

为此,您不需要“this”,您需要事件的目标:

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

工作小提琴

http://jsfiddle.net/3LvCm/


-1
投票
 tr += `<td> <a class="btn btn-info m-1 update_info" update_id=${item["stdId"]}><i class='fa fa-edit'></i></a><a class ="btn btn-danger delete_info" delete_id=${item["stdId"]}><i class='fa fa-trash'></i></a></td>`;


$("#stduentTbl").on("click", "a.update_info", () => {
  let id = $(this).attr("update_id");
  console.log(id);

here when i try to print it will give undefined what happpened.


  fetchInfo(id);
});
© www.soinside.com 2019 - 2024. All rights reserved.