jquery正则表达式问题匹配任何字符串a-zA-Z0-1
jquery regex issue match any string a-zA-Z0-1
由于某些原因,我不能使用嵌套的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 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();
}
});
我该怎么做上面的STR在js
http://jsfiddle.net/cn856y49/4/我想做的是:点击上面的任何div:隐藏它所有的子和孙子,或者只显示它的子。
隐藏正在工作。然而,我不确定如何使显示工作。
如. .点击id=a会隐藏所有id=a-1, a-xx-xx等,再次点击id=a只会显示下一层的孩子
首先在所有节点上删除on
类,然后为当前节点切换on
。因此它将永远开着。下面是一个稍微修改的版本,应该可以做到这一点。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();
}
});
相关文章:
- jQuery中是否内置了任何字符串格式化函数
- 如果URL中有任何字符串变体匹配,则返回true
- 当用户在命令提示符中选择任何字符串时,节点Js不为任何请求提供服务
- 使用jQuery检查html元素中是否存在任何字符串
- HTML5 localStorage 密钥可以是任何字符串
- 如何编写与任何字符串匹配的正则表达式
- 正则表达式以匹配地址中的任何字符串组
- Regex:匹配日期和冒号之间的任何字符串
- 如何使用javascript搜索和替换iframe中的任何字符串
- Javascript Regex-替换匹配字符串的所有出现,括号之间的任何字符串除外
- RegExp匹配除两个保留字符串外的任何字符串
- 我试图找出一个正则表达式在JavaScript中删除点之前的任何字符串
- 如何从字符串数组中删除任何字符串
- 有没有任何字符串方法,能让我把一串数字,转换成一串数字和字母
- 匹配除两个特定字符串之外的任何字符串
- jquery正则表达式问题匹配任何字符串a-zA-Z0-1
- 使用regex获取最后两个斜杠之间的任何字符串或其他最后两个相同字符
- 如何删除方括号内的任何字符串
- 正则表达式匹配前面没有另一个字符串的任何字符串
- ReCaptcha不接受任何字符串