如何使用jQuery获取已单击元素的ID

如何使用jQuery获取已单击元素的ID,jquery,jquery-cycle,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.... */ “pagerlink”链接控件用于jQuery循环幻灯片放映。如果我交换这一行: $cont

我有以下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.... */
“pagerlink”链接控件用于jQuery循环幻灯片放映。如果我交换这一行:

$container.cycle(id); 
为此

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


提前谢谢

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

您只需从开头删除哈希:

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

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

$container.cycle(id.replace('#','')); 
您的ID是
#1
,而
cycle
只需要向其传递一个数字。在调用
循环之前,您需要删除
#

$('a.pagerlink').click(function() { 
    var id = $(this).attr('id');
    $container.cycle(id.replace('#', '')); 
    return false; 
});
此外,ID不应包含
#
字符,它是无效的(数字ID也是无效的)。我建议将ID更改为类似于
pager\u 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; 
});

$('a.pagerlink')。单击(函数(){
var id=$(this.attr('id');
$container.cycle(id.replace('pager_','');
返回false;
});

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


#
不是
[id]
中的有效字符。官方规范规定,id应始终以大写或小写字母开头,而不是数字(或哈希符号)。很多浏览器都会允许,但你不能期望他们会这样做。HTML5实际上允许使用数字ID。
<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; 
});
function getId(){console.log(this.event.target.id)}