Javascript 如何切换`<;div>;`单击另一个div时的项目?
我有这样的Javascript 如何切换`<;div>;`单击另一个div时的项目?,javascript,jquery,html,toggle,show-hide,Javascript,Jquery,Html,Toggle,Show Hide,我有这样的结构 <!-- Parent --> <div id="parentCategory" > <input type="image" src="a.jpg" onClick="showNextCat('nextCategory1', 'block', 'nextCategory2', 'nextCategory3')" /> <input type="image" src="b.jpg" onClick="showNex
结构
<!-- Parent -->
<div id="parentCategory" >
<input type="image" src="a.jpg" onClick="showNextCat('nextCategory1', 'block', 'nextCategory2', 'nextCategory3')" />
<input type="image" src="b.jpg" onClick="showNextCat('nextCategory2', 'block', 'nextCategory1', 'nextCategory3')" />
<input type="image" src="c.jpg" onClick="showNextCat('nextCategory3', 'block', 'nextCategory1', 'nextCategory2')" />
...
</div>
<!-- 1st Child -->
<div id="nextCategory1" style="display: none;">
<input type="image" src="1a.jpg" />
<input type="image" src="1b.jpg" />
</div>
<!-- 2nd Child -->
<div id="nextCategory2" style="display: none;">
<input type="image" src="2a.jpg" />
<input type="image" src="2b.jpg" />
</div>
<!-- 3rd Child -->
<div id="nextCategory3" style="display: none;">
<input type="image" src="3a.jpg" />
<input type="image" src="3b.jpg" />
</div>
我不想硬编码showNextCat()
方法来隐藏未选中的
请即兴使用JS方法。使用jQuery,您可以使这变得简单。首先,从按钮中删除所有的onClick
事件。然后,必须为所选div定义css类:
.selected {
display : block;
}
然后在按钮上指定相关类别的id,例如
<input type="image" src="a.jpg" select-category="nextCategory1" />
注意:这不是唯一的解决方案。如果使用jquery,也有两种可能的选择
那就容易多了
让我们先看看jQuery的解决方案
将class=“category”
应用于要动态操作的所有元素
在html中输入要显示的值,如data show=“nextCategory1”
应用css
.category{
display:none;
}
把这个JS函数
$('#parentCategory input').on('click',function(e){
$('.category').hide();
$('#'+$(this).data('show')).show();
});
现在让我们看看Javascript解决方案,它也有点类似
function showNextCat(id) {
var item = document.getElementById(id);
var elem = document.querySelectorAll(".category")
var i;
for (i = 0; i < elem.length; i++) {
elem[i].style.display='none';
}
item.style.display='block';
}
函数showNextCat(id){
var item=document.getElementById(id);
var elem=document.querySelectorAll(“.category”)
var i;
对于(i=0;i
您可以使用jQuery提供的切换类(className)
您也不应该使用内联JS,您知道。。。如果你打算使用jQuery,现在是时候几乎完全重写你的JS代码了。。我将使用jQuerytoggleClass
。。。有任何链接或示例吗?@ShadabMehdi类似。
$('#parentCategory input').on('click',function(e){
$('.category').hide();
$('#'+$(this).data('show')).show();
});
function showNextCat(id) {
var item = document.getElementById(id);
var elem = document.querySelectorAll(".category")
var i;
for (i = 0; i < elem.length; i++) {
elem[i].style.display='none';
}
item.style.display='block';
}