【发布时间】:2020-04-02 23:30:17
【问题描述】:
我有两个 html 页面(produse.html 和 item.html)和其中一个中的菜单。当我从菜单中单击一个链接时,我需要转到另一个页面,同时显示一个特定的 div 并从 item.html 隐藏原始的。
我在javascript中使用onclick方法进行了尝试,但它不起作用。我认为问题在于 javascript 代码无法获取另一个页面中 div 的类名。
有什么可以做的吗?
这是我试过的代码。
produse.html
<div class="sideMenu">
<a href="item.html" onclick="displayTheBox(0); return false;">prod 1</a>
<a href="item.html" onclick="displayTheBox(1); return false;">prod 2</a>
<a href="item.html" onclick="displayTheBox(2); return false;">prod 3</a>
<a href="item.html" onclick="displayTheBox(3); return false;">prod 4</a>
</div>
item.html
<div class="displayBox yes">
1
</div>
<div class="displayBox">
2
</div>
<div class="displayBox">
3
</div>
<div class="displayBox">
4
</div>
javascript
var prevN = 0;
function displayTheBox(n){
var products = document.getElementsByClassName("displayBox");
products[prevN].className = products[prevN].className.replace(" yes", "");
products[n].className += " yes";
prevN = n;
}
css
.displayBox{
float: left;
height: 200px;
overflow: auto;
position: relative;
box-shadow: 1px 1px 4px 2px #9b9b9b;
background-color: #bbe5f8;
border-radius: 6px;
width: 995px;
margin: 0 0 0 235px;
display: none;
}
.yes{
display: block;
}
【问题讨论】:
-
将 url 变量添加到链接中,例如
href="item.html?hide=0"然后当您转到该页面时,您可以读取变量并适当地隐藏。 -
您可以将参数存储在用户浏览器的LocalStorage中,然后根据显示与否。即使在刷新后它也会保持不变,并且链接将是相同的。
-
有两种方法可以管理这个 1. 将值传递给 url 参数,2. 将其设置为本地/会话存储
-
或者,将所有内容放在一个主页中,并通过 AJAX 加载不同的内容
-
没错,如果 OP 想使用类似的方法,他应该研究 React 或 Vue,因为您可以制作单独的组件并将它们链接在一起
标签: javascript html css