将变量从链接传递给jQuery

时间:2010-10-07 12:58:21

标签: jquery ajax

我正在重新设置我管理的网站管理部分的页面,以便它使用jQuery和AJAX。在其中一个页面上,我有一个项目列表。每个项目旁边都有一个链接,如下所示:

<a href="delete.php?id=48" class="del_link">delete</a>

如果我给这些链接一个类,我可以轻松地将jQuery函数应用于所有这些,但它们都会以相同的方式调用相同的函数。我的问题是:函数获取项目ID的最佳方法是什么,而不包含与html内联的JavaScript?

更新: 感谢大家的指点。 我最终使用了这个:

$(".del_link").click(function(){
    var del_link = $(this).attr('href');
    $("#results").load(del_link, function (){
        $("#results").show().delay().fadeTo(2000, 0);
    })
})

ajax调用的php文件如果被ajax或正常请求以不同的方式响应 - 如果它是ajax它会输出一个响应(例如“Item was successfully successfully”),它可以显示在#results div中。如果某人禁用了javascript,则客户端将被定向到相同的php页面,但是一旦删除该项目,它将重定向它们。

4 个答案:

答案 0 :(得分:7)

又快又脏:

$('.del_link').click(function(){
    var id = $(this).attr('href').split('=')[1];
    // Do something with the ID here
});

警告,如果链接网址包含多个查询字符串参数,则无效。在那种情况下,您必须对attr('href')值进行一些稍微复杂的解析。

答案 1 :(得分:2)

好吧,你可以很容易地得到href:

var id = $('.del_link a').attr('href');

然后解析id。

答案 2 :(得分:2)

在HTML 5中,您可以使用数据属性。像

这样的东西
<a href="delete.php?id=48" class="del_link" data-id='48'>delete</a> 

和jQuery

$("a.del_link").each(function(){
   var id = $(this).attr('data-id');
});

阅读有关HTML 5数据属性的this文章

答案 3 :(得分:0)

当您添加onClick处理程序时,this将成为链接。

检查href属性(使用this.href)并解析ID。