javascript - 是否可以通过 URL 直接转到 div 的内容?
问题描述
内容是用上一个和下一个按钮显示的,但是可以直接用链接显示框的内容吗?
例如:
那么第二个框可以显示内容吗?
$(document).ready(function() {
$('#next').click(function() {
if ($('.active').next('.case').length) {
$('.active').removeClass('active')
.next('.case')
.addClass('active');
}
});
$('#prev').click(function() {
if ($('.active').prev('.case').length) {
$('.active').removeClass('active')
.prev('.case')
.addClass('active');
}
});
});
.case {
display: none
}
.active {
background: yellow;
border: 1px solid;
display: block
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="next">
<h1>next</h1>
</div>
<div id="prev">
<h1>prev</h1>
</div>
<div id="box1" class="case active">content 1</div>
<div id="box2" class="case">content 2</div>
<div id="box3" class="case">content 3</div>
我做了什么?
if($(location).attr('hash') != null) {
document.getElementById('box' + $(location).attr('hash').replace("#", "")).style.display = 'block';
}
但它没有用
更新 1
我变了:
if($(location).attr('hash') != null) {
document.getElementById('box' + $(location).attr('hash').replace("#/", "")).style.display = 'block';
document.getElementById('box' + $(location).attr('hash').replace("#/", "")).addClass('active');
}
结果,没用
如果可能的话,你能指导我吗?
解决方案
尝试这个:
$(document).ready(function() {
$('#next').click(function() {
if ($('.active').next('.case').length) {
$('.active').removeClass('active')
.next('.case')
.addClass('active');
}
});
$('#prev').click(function() {
if ($('.active').prev('.case').length) {
$('.active').removeClass('active')
.prev('.case')
.addClass('active');
}
});
//var location = window.location.href
var location = 'https://example.com/content/#/3'; //for example
if(location.split("#/")) {
$('#box' + location.split("#/")[1]).addClass('active');
}
});
.case {
display: none
}
.active {
background: yellow;
border: 1px solid;
display: block
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="next">
<h1>next</h1>
</div>
<div id="prev">
<h1>prev</h1>
</div>
<div id="box1" class="case">content 1</div>
<div id="box2" class="case">content 2</div>
<div id="box3" class="case">content 3</div>
推荐阅读
- javascript - 声明时如何在同一对象的另一个属性中使用前一个对象属性的值
- java - 在 JpaRepository 接口(子查询)中设置@query
- visual-studio - 如何在 Visual Studio 错误列表中显示失败的 NUnit 测试
- twilio - 如何使用 twiml 将来电重定向到 SIP ip 地址?
- php - 如何在我的服务器后台执行 PHP?
- autodesk-forge - 是否可以在 Forge 中获取 nwd 模型的已保存视图的名称?
- angular - 需要帮助使用此 API 来显示信息 (Ionic 3)
- r - 如何使用 mutate 函数用索引号替换唯一值?
- msbuild - 找不到 signtool 的临时位置。退出
- python - Pyspark - 使用广播字典中的日期过滤 RDD