我有以下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
谢谢!
答案 0 :(得分: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();
});
答案 1 :(得分:2)
$('nav').on('click', 'li', function(e) {
$('#post-' + this.id.replace('menu-item-', '')).show().siblings().hide();
});
答案 2 :(得分:0)
您可以这样做:
$('a').click(function(){
$id = $(this).closest('li').prop('id'); // Get the id
$("#post-"+id.split("-")[2]).show(); // show the post
});
答案 3 :(得分:0)
$('nav li').click(function() {
var id = this.value.split('-')[1];
var ele = $('#post-' + id);
ele.show();
$('.page').not(ele).hide();
});
答案 4 :(得分: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...
}
});
});