如何使用jQuery获取clicked元素的ID

时间:2011-10-20 15:22:07

标签: jquery jquery-cycle

我有以下html:

<a href="#" id="#1" class="pagerlink" >link</a>
<a href="#" id="#3" class="pagerlink" >link</a>
<a href="#" id="#2" class="pagerlink" >link</a>
/*etc.... */

以及以下jQuery脚本:

$(document).ready(function() {

    var $container = $('.gallery_r').cycle({ 
        fx:     'scrollHorz', 
        speed:   500, 
        timeout: 0 
    }); 

    $('a.pagerlink').click(function() { 
        var id = $(this).attr('id');
        $container.cycle(id); 
        return false; 
    }); 

});
'pagerlink'链接控件是jQuery Cycle幻灯片。如果我换掉这一行:

$container.cycle(id); 

这个

$container.cycle(7); 

它有效......(显然只能导航到7号幻灯片)。所以,我的问题是如何获取被点击链接的ID并将其传递到该行?

提前致谢!

5 个答案:

答案 0 :(得分:65)

您的ID为#1,而cycle只需要传递一个号码。在调用#之前,您需要删除cycle

$('a.pagerlink').click(function() { 
    var id = $(this).attr('id');
    $container.cycle(id.replace('#', '')); 
    return false; 
});

此外,ID不应包含#字符,它无效(数字ID也无效)。我建议将ID更改为pager_1

<a href="#" id="pager_1" class="pagerlink" >link</a>

$('a.pagerlink').click(function() { 
    var id = $(this).attr('id');
    $container.cycle(id.replace('pager_', '')); 
    return false; 
});

答案 1 :(得分:7)

您只需要从头开始删除哈希:

$('a.pagerlink').click(function() { 
    var id = $(this).attr('id').substring(1);
    $container.cycle(id); 
    return false; 
}); 

答案 2 :(得分:3)

您的ID将作为#1,#2等传递。但是,#无效作为ID(带有#的CSS选择器前缀ID)。

答案 3 :(得分:2)

首先,除非您使用HTML5 DOCTYPE,否则您不能只为您的ID编号。其次,您需要删除每个ID中的#或者将其替换为:

$container.cycle(id.replace('#','')); 

答案 4 :(得分:1)

@Adam只需使用onClick =“ getId()”添加一个函数

function getId(){console.log(this.event.target.id)}