javascript动态内容与选择长运行脚本
javascript dynamic content with select long running script
基本上一直在尝试弄清楚一些javascript的东西,所以做了几个div和一个选择,所以取决于所选的选项,取决于显示/隐藏的div。
它似乎工作正常,在加载后隐藏除第一个div之外的所有div,然后当选择第二个选项时,它显示第二个div,通过附加一个类来隐藏第一个div。
不过,当我将选项改回第一个div时,它会创建一个长时间运行的脚本,阻塞所有内容,我不知道长时间运行脚本来自哪里。
如有任何建议,不胜感激。
这是代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
.itemCont.show{
display:block;
}
.itemCont.hide{
display:none;
}
</style>
</head>
<body onload="sortDivs();">
<select name="options" id="opts" onchange="optSelect(this);">
<option value="0">item</option>
<option value="1">another</option>
</select>
<div class="output">
<div class="itemCont show" id="div0">
<h1>1</h1>
</div>
<div class="itemCont" id="div1">
<h1>2</h1>
</div>
</div>
</body>
<script async="async" ype="text/javascript">
function sortDivs(){
var divs = document.getElementsByClassName('itemCont');
for( var i = 0; i < divs.length; i++ ){
if(i>0){
divs[i].className += ' hide';
}
}
}
function optSelect(opt){
var val = opt.value;
var divs = document.getElementsByClassName('itemCont');
var divActive = document.getElementsByClassName("itemCont show");
divActive[0].className = divActive[0].className.replace(/'bshow'b/,'hide');
for ( var i = 0; i < divs.length; i++ ) {
if(i = val){
divs[i].className = divs[i].className.replace(/'bhide'b/,'show');
}
}
}
</script>
</html>
您有一个打字错误=
应该是==
for ( var i = 0; i < divs.length; i++ ) {
if(i == val){
divs[i].className = divs[i].className.replace(/'bhide'b/,'show');
}
}
我建议使用jQuery(toggle)来处理这类事情:)
相关文章:
- 如何在加载网页时运行脚本
- 使用JavaScript运行脚本
- javascript动态内容与选择长运行脚本
- Javascript:在新页面中打开链接并运行脚本
- 如何在内部脚本完全加载后运行脚本
- 对couchdb数据库/视图中的所有文档运行脚本/查询
- 单击1个表单中的2个提交按钮中的1个时,如何运行脚本
- 是否可以在node.js依赖项上运行脚本
- "npm运行构建:css"不能工作,而当我自己运行脚本时是可以的
- 运行脚本以禁用脚本
- 在网络whatsapp上运行脚本
- 仅在 url 索引上运行脚本
- [XSS]Expressjs 阻止从 POST 请求运行脚本
- 在触发无限滚动时运行脚本
- 使用Browserify运行脚本,无需先进行构建过程
- "停止运行脚本错误“;在IE8中拥有大量收藏
- PHP-如何让别人可以'不要更改url中的参数,也不要在刷新页面时再次运行脚本
- 如何在不阻塞脚本的情况下运行脚本
- 如果用户登录不起作用,则运行脚本
- 我想在用Jquery.ajax方法加载数据后在Html中运行脚本