<div tree="T">123</div>
<div tree="T01">123</div>
<div tree="T02">123</div>
<div tree="T0101">123</div>
<div tree="T0201">123</div>如果我使用$("div[tree*=T]")过滤,则以上所有div都会被过滤出来。
但是我只想过滤以T开头,tree属性长度为3位的div,也就是第2,3两个div!
或者我只想过滤以T01开头,tree属性长度为5位的div,也就是第4个div!
请问如何实现???
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
//以什么开头和tree的长度分别判断一次就可以了
//下面的是找出以T01开头的DIV tree的长度
$(function(){
$("div[tree^=T01]").each(function(){
alert($(this).attr('tree').length);
});
})
</script>
<div tree="T">123</div>
<div tree="T01">123</div>
<div tree="T02">123</div>
<div tree="T0101">123</div>
<div tree="T0201">123</div>
其实div有很多的
如果都查出来再在function里面过滤的话会影响性能
我想的是如何通过jquery一遍就查出需要的数据
<script type="text/javascript">
$(function(){
//过滤以T01开头,tree属性长度为5位的div,
$("div").filter(function(){
return /^T01..$/.test($(this).attr("tree"));
}).css("background-color","#ff0000");
})
</script>
<div tree="T">123</div>
<div tree="T01">123</div>
<div tree="T02">123</div>
<div tree="T0101">123</div>
<div tree="T0201">123</div>
filter 之前再精确一下范围就更好。