javascript - 单个 html 文件中的多个内容 'pages'

标签 javascript html css

我在搜索时发现了这段代码,想知道是否可以扩展它以便我可以在我正在创建的元素上拥有超过 2 个“页面”?

代码如下:

<html>
<head>
<script>
function show(shown, hidden) {
document.getElementById(shown).style.display='block';
document.getElementById(hidden).style.display='none';
return false;
}
</script>
</head>
<body>

<div id="Page1">
Content of page 1
<a href="#" onclick="return show('Page2','Page1');">Show page 2</a>
</div>

<div id="Page2" style="display:none">
Content of page 2
<a href="#" onclick="return show('Page1','Page2');">Show page 1</a>
</div>

</body>
</html>

最佳答案

不是最优雅的解决方案,但它有效:)

<html>
<head>
<style>
    ul li {
        display: inline-block;
    }
    .shown: {
        display: block;
    }
    .hidden: {
        display: none;
    }
</style>
</head>
<body>

<ul>
    <li class="links" data-link="0"><a href="#">Page1</a></li>
    <li class="links" data-link="1"><a href="#">Page2</a></li>
    <li class="links" data-link="2"><a href="#">Page3</a></li>
    <li class="links" data-link="3"><a href="#">Page4</a></li>
</ul>


<div class="pages" id="Page1" data-item="0">
Content of page 1
</div>

<div class="pages" id="Page2" data-item="1" style="display:none">
Content of page 2
</div>

<div class="pages" id="Page3" data-item="2" style="display:none">
Content of page 3
</div>

<div class="pages" id="Page4" data-item="3" style="display:none">
Content of page 4
</div>
<script>
(function() {
    var links = document.querySelectorAll('.links');
    var pages = document.querySelectorAll('.pages');
    for(var i=0;i<links.length;i++) {
        links[i].addEventListener('click', function() {
            for(var j=0;j<pages.length;j++) {
                pages[j].setAttribute('style', 'display: none');
                if(this.getAttribute('data-link') === pages[j].getAttribute('data-item')) {
                    pages[j].setAttribute('style', 'display: block')
                }
            }
        })
    }
}());
</script>
</body>
</html>

关于javascript - 单个 html 文件中的多个内容 'pages',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39978986/

相关文章:

javascript - 单击某些内容时显示(幻灯片)文本框

javascript - 向应用程序用户提供分析数据的最佳方式是什么?

javascript - 使用变量 react 动态导入不起作用

javascript - 如何将 css 添加到 jquery backstretch?

html - 更改 Div 上的边距不会影响?

javascript - 如何使用javascript检测可播放的音频类型?

html - 如何叠加图像

jquery - 我需要 CSS 中的玻璃形状

javascript - 如何继承css动画?

javascript - HTML 自定义菜单控件问题