Javascript jquery正则表达式问题匹配任何字符串a-zA-Z0-1
对于某些原因,我不能使用嵌套div,我正在尝试切换div树 Div id包含除-Javascript jquery正则表达式问题匹配任何字符串a-zA-Z0-1,javascript,jquery,Javascript,Jquery,对于某些原因,我不能使用嵌套div,我正在尝试切换div树 Div id包含除- <div class="tree"> <div id="a">id=a click to toggle child</div> <div id="a-1"> == id=a-1</div> <div id="a-1-f"> == == id=a-1-f</div>
<div class="tree">
<div id="a">id=a click to toggle child</div>
<div id="a-1"> == id=a-1</div>
<div id="a-1-f"> == == id=a-1-f</div>
<div id="a-1-g"> == == id=a-1-g</div>
<div id="a-2"> == id=a-2</div>
<div id="b">id=b</div>
</div>
$('.tree').children().on('click',function(){
var $id = $(this).attr('id');
$(this).parent().children().removeClass('on');
$(this).toggleClass('on');
$('[id^='+$id+'-]').hide();
var str = /^[a-zA-Z0-9]*$/;
if ($(this).hasClass('on')) {
$('[id^='+$id+'-'+ str +']').show();
}
});
id=单击以切换子对象
==id=a-1
==id=a-1-f
==id=a-1-g
==id=a-2
id=b
$('.tree').children().on('click',function()){
var$id=$(this.attr('id');
$(this.parent().children().removeClass('on');
$(this.toggleClass('on');
$('[id^='+$id+'-]')。hide();
var str=/^[a-zA-Z0-9]*$/;
if($(this).hasClass('on')){
$('[id^='+$id+'-'+str+']')。show();
}
});
在js中,我应该为上面的str做什么
我试图做的是:单击上面的任何div:隐藏它的所有子对象和子对象,或者只显示它的子对象
隐藏正在工作。然而,我不知道该如何让这个节目发挥作用
例如,单击id=a将隐藏所有id=a-1、a-xx-xx等,再次单击id=a将仅显示其下一级子级您将首先在所有节点上删除类,然后在当前节点上切换。因此,它将始终打开。下面是一个稍加修改的版本,应该可以做到这一点。div的初始状态不正确,但您可以从此处开始
$('.tree').children().on('click',function(){
var $id = $(this).attr('id');
var on = !($(this).hasClass('on')); // toggle "on"
$(this).parent().children().removeClass('on');
$('[id^='+$id+'-]').hide();
var str = /^[a-zA-Z0-9]*$/;
if (on) {
$(this).addClass('on');
$('[id^='+$id+']').show();
}
});
好的,但我猜不出这个问题。