首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果ID部分匹配,则选择一个元素

如果ID部分匹配,则选择一个元素
EN

Stack Overflow用户
提问于 2013-01-17 22:53:58
回答 5查看 141关注 0票数 0

我有以下HTML:

代码语言:javascript
复制
<header>
  <nav>
    <ul>
        <li id="menu-item-1"><a href="javascript:void(0)">Lien 1</a></li>
        <li id="menu-item-2"><a href="javascript:void(0)">Lien 2</a></li>
        <li id="menu-item-3"><a href="javascript:void(0)">Lien 3</a></li>
    </ul>
  </nav>
</header>

<article id="content">
  <div id="post-1" class="page">
    <p>content post 1</p>
  </div>
  <div id="post-2" class="page">
    <p>content post 2</p>
  </div>
  <div id="post-3" class="page">
    <p>content post 3</p>
  </div>
</article>

其想法如下:如果菜单项-后的数字与post-之后的数字匹配,那么就做一些事情。

我该怎么做?

最后的目标是在单击相应的菜单链接时显示每个div。

代码语言:javascript
复制
menu-item-1 -> display post-1
menu-item-2 -> display post-2
menu-item-3 -> display post-3

谢谢!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-01-17 22:57:56

代码语言:javascript
复制
$('nav').on('click', 'li', function(e) {
    $('#post-' + this.id.replace('menu-item-', '')).show().siblings().hide();
});

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

票数 2
EN

Stack Overflow用户

发布于 2013-01-17 22:56:37

代码语言:javascript
复制
$('nav li').click(function() {
   // Optional: hide other posts 
   $('.page').hide();

   // Show the correct post
   var id = this.id.replace('menu-item-', '');
   $('#post-' + id).show();
});
票数 2
EN

Stack Overflow用户

发布于 2013-01-17 22:57:33

你可以这样做:

代码语言:javascript
复制
$('a').click(function(){
    $id = $(this).closest('li').prop('id'); // Get the id
    $("#post-"+id.split("-")[2]).show();     // show the post
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14389648

复制
相关文章

相似问题

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