如何用jQuery获取被点击元素的ID

n3ipq98p  于 2022-12-22  发布在  jQuery
关注(0)|答案(5)|浏览(159)

我有下面的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循环幻灯片。如果我交换这一行:

$container.cycle(id);

为此

$container.cycle(7);

它工作了。(显然只导航到第7张幻灯片)。所以,我的问题是我如何才能拿起被点击的链接的ID并将其传递到那一行?

suzh9iv8

suzh9iv81#

您的ID是#1cycle只需要传递一个数字。您需要在调用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; 
});
z2acfund

z2acfund2#

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

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

8yparm6h3#

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

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

cnwbcb6i4#

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

zdwk9cvp

zdwk9cvp5#

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

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

相关问题