0

我有以下 HTML:

<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>

想法如下:如果menu-item-之后的数字与post-之后的数字匹配,则执行某些操作。

我怎么做?

最终目标是当我点击相应的菜单链接时显示每个 div

menu-item-1 -> display post-1
menu-item-2 -> display post-2
menu-item-3 -> display post-3

谢谢 !

4

5 回答 5

2
$('nav li').click(function() {
   // Optional: hide other posts 
   $('.page').hide();

   // Show the correct post
   var id = this.id.replace('menu-item-', '');
   $('#post-' + id).show();
});
于 2013-01-17T22:56:37.677 回答
2
$('nav').on('click', 'li', function(e) {
    $('#post-' + this.id.replace('menu-item-', '')).show().siblings().hide();
});

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

于 2013-01-17T22:57:56.597 回答
0

你可以这样做:

$('a').click(function(){
    $id = $(this).closest('li').prop('id'); // Get the id
    $("#post-"+id.split("-")[2]).show();     // show the post
});
于 2013-01-17T22:57:33.853 回答
0
$('nav li').click(function() {
   var id = this.value.split('-')[1];
   var ele = $('#post-' + id);
   ele.show();
   $('.page').not(ele).hide();   
});
于 2013-01-17T22:59:34.793 回答
0
$('li').click(function(){

  var pID= $(this).attr('id').split('-')[2];
  $('#content').find('div').each(function(){

    if(pID==$(this).attr('id').split('-')[1]){

      //DO SOMETHING HERE...
    }
  });
});
于 2013-01-17T23:08:45.897 回答