如何从click事件对象获取链接的href属性的参数

its*_*inn 8 javascript ajax jquery

有没有一种简单的方法可以使用click事件对象在单击链接的href属性的末尾获取参数?

我有一些看起来像这样的jQuery代码:

$(document).ready(function() {
    $('#pages').delegate("a", "click", function(e) {
        var formData = "parameters to clicked link";
        $.ajax({
            url: 'friends2.php',
            dataType: 'json',
            data: formData,
            success: function(data) {
                $('#searchbutton').attr("disabled", false);
                $('#searchresults').html(data.results);
                $('#pages').html(data.paginate);
            }
        });//ajax end
        return false;
    });
});
Run Code Online (Sandbox Code Playgroud)

这是相关的HTML:

<div id="pages">
<span class="disabled">previous</span>
<span class="current">1</span>
<a href="friends.php?term=ma&p=2">2</a>
</div>
Run Code Online (Sandbox Code Playgroud)

我正在尝试做的是对我用ajax完成的搜索结果进行分页.搜索运行正常,并获得与查询匹配的用户列表.创建分页链接的结果脚本部分也正常工作.

在上面的示例中,有两页结果.当用户单击链接转到结果的第2页时,我想要做的是拦截链接点击,而是使用term=ma&p=2传递给请求的数据创建新的ajax 请求.

所以,长话短说,是否有一种简单的方法可以term=ma&p=2从事件对象中获取传递给我jQuery上面的匿名函数?

Sar*_*raz 8

您可以使用该this.href方法读取链接属性:

$('#pages').delegate("a", "click", function(e) {
   var str = this.href.split('?')[1];
Run Code Online (Sandbox Code Playgroud)

例:

str = 'friends.php?term=ma&p=2';
console.log(str.split('?')[1]); // output: term=ma&p=2
Run Code Online (Sandbox Code Playgroud)


小智 5

是的,您可以使用.search链接的属性...

alert( this.search );
Run Code Online (Sandbox Code Playgroud)

演示: http : //jsfiddle.net/sHqmF/


为了摆脱?,只是.slice()它......

this.search.slice(1)
Run Code Online (Sandbox Code Playgroud)

演示: http : //jsfiddle.net/sHqmF/1/