Hide/Show 个特定的 div
Hide/Show specific divs
我有 2 个 div。一个菜单和一个内容div
<div>
<ul>
<li><a>menu One</a></li>
<li><a>menu Two</a></li>
<li><a>menu Three</a></li>
</ul>
</div>
<div>
<div>Content one</div>
<div>Content two</div>
<div>Content three</div>
</div>
在第一个页面加载时,内容 ONE 在页面上。
现在,当我单击 "menu Two" 时,我想显示内容二。当我单击内容二时,所有其他内容都关闭,页面上只有内容二,依此类推...
如何使用 jQuery 中的数组来完成此操作?其他方法也可以。
$('li').click(function(){
$('div > div:eq('+$(this).index()+')').show();
});
//when user clicks on any content is hides all except the current content
$('div > div').click(function(){
$('div > div').hide();
$(this).show();
});
我为你的问题创建了一个 fiddle。 https://jsfiddle.net/ebilgin/n44gtyLd/3/
HTML
<div class="menu">
<ul>
<li><a>menu One</a></li>
<li><a>menu Two</a></li>
<li><a>menu Three</a></li>
</ul>
</div>
<div class="content">
<ul>
<li>Content one
<ul>
<li>Content one one
<ul>
<li>Content one one one</li>
</ul>
</li>
</ul>
</li>
<li>Content two
<ul>
<li>Content two two
<ul>
<li>Content two two two</li>
</ul>
</li>
</ul>
</li>
<li>Content three
<ul>
<li>Content three three
<ul>
<li>Content three three three</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
CSS
.content > ul > li:nth-child(n+2) {
display: none;
}
JavaScript
var menuItems = $("div:eq(0)").find("li");
var contents = $("div:eq(1)").children("ul").children("li");
menuItems.on('click', function () {
var index = menuItems.index( $(this) );
showContent( index, true );
});
contents.on('click', function () {
var index = contents.index( $(this) );
showContent( index, true );
});
function showContent( index, allHide ) {
if ( allHide )
contents.hide()
contents.eq( index ).show();
}
我有 2 个 div。一个菜单和一个内容div
<div>
<ul>
<li><a>menu One</a></li>
<li><a>menu Two</a></li>
<li><a>menu Three</a></li>
</ul>
</div>
<div>
<div>Content one</div>
<div>Content two</div>
<div>Content three</div>
</div>
在第一个页面加载时,内容 ONE 在页面上。 现在,当我单击 "menu Two" 时,我想显示内容二。当我单击内容二时,所有其他内容都关闭,页面上只有内容二,依此类推...
如何使用 jQuery 中的数组来完成此操作?其他方法也可以。
$('li').click(function(){
$('div > div:eq('+$(this).index()+')').show();
});
//when user clicks on any content is hides all except the current content
$('div > div').click(function(){
$('div > div').hide();
$(this).show();
});
我为你的问题创建了一个 fiddle。 https://jsfiddle.net/ebilgin/n44gtyLd/3/
HTML
<div class="menu">
<ul>
<li><a>menu One</a></li>
<li><a>menu Two</a></li>
<li><a>menu Three</a></li>
</ul>
</div>
<div class="content">
<ul>
<li>Content one
<ul>
<li>Content one one
<ul>
<li>Content one one one</li>
</ul>
</li>
</ul>
</li>
<li>Content two
<ul>
<li>Content two two
<ul>
<li>Content two two two</li>
</ul>
</li>
</ul>
</li>
<li>Content three
<ul>
<li>Content three three
<ul>
<li>Content three three three</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
CSS
.content > ul > li:nth-child(n+2) {
display: none;
}
JavaScript
var menuItems = $("div:eq(0)").find("li");
var contents = $("div:eq(1)").children("ul").children("li");
menuItems.on('click', function () {
var index = menuItems.index( $(this) );
showContent( index, true );
});
contents.on('click', function () {
var index = contents.index( $(this) );
showContent( index, true );
});
function showContent( index, allHide ) {
if ( allHide )
contents.hide()
contents.eq( index ).show();
}