首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery: div不打开id-9

jquery: div不打开id-9
EN

Stack Overflow用户
提问于 2014-06-07 03:47:46
回答 3查看 45关注 0票数 3

我给你发了详细的我的工作,当我点击链接1,2,3,4,5,6,7,8,9,然后我点击10,然后详细的DIV被隐藏,当我再添加一个链接时,当我输入ID 11时,它就转到了细节-Id1。我只想把身份证的1到100。

请参阅此链接:JSFIDDLE

这是JS代码:

代码语言:javascript
复制
jQuery('a[id^="prod"]').on('click', function (e) {
    var id = $(this).attr('id').slice(-1);
    var previs = $('div.product-detail:visible');
    $('div.product-detail').hide();
    if (previs.is($('.det' + id))) {
        $('.det' + id).hide()
    }
    else
    {
        $('.det' + id).show();
    }

    e.preventDefault()
});
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-06-07 03:57:41

使用var id = this.id.match(/\d+/); 从您的ID中获取数字

http://jsfiddle.net/hLd5W/21/

票数 1
EN

Stack Overflow用户

发布于 2014-06-07 03:56:46

从第一眼看,我想说的问题是:

代码语言:javascript
复制
var id = $(this).attr('id').slice(-1);

您只得到id的最后一个数字,而不是整个数字。如果您将该行替换为以下内容:

代码语言:javascript
复制
var id = $(this).attr('id').replace('prod', '');

它可以与任意数量的数字一起工作,如以下所示:http://jsfiddle.net/hLd5W/20/

票数 1
EN

Stack Overflow用户

发布于 2014-06-07 04:00:08

这是因为slice(-1)返回字符串的最后一个字符。不需要使用ids,您可以使用indexeq方法:

代码语言:javascript
复制
var $pd = $('.product-detail');
var $links = $('a[id^="prod"]').on('click', function (e) {
   var i = $links.index(this), $target = $pd.eq(i);

   $pd.not($target.toggle()).hide();

   e.preventDefault()
});

http://jsfiddle.net/rLh8G/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24093443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档