我有一个庞大的目录树。结构大致如下。<div class="menu">
<ul id="a1b1">...</ul>
...
<ul id="a11b23">...</ul>
...
<ul id="a35b12">...</ul>
...
<ul id="a68b98">...</ul>
<ul id="a68b99">...</ul>
...
<ul id="a100b100">...</ul>/* 数字大于99,不需要修改 */
...
</div>现在我要在所有id=a+数字+b+数字 (数字范围1-99)的 ul 添加一些css样式。
这些数字式无序且非连续性的,我采用 jquery + 正则 判断处理, 我的代码如下:jQuery(document).ready(function(){
var menuArray = $('.menu').children('ul');
var id = $('.menu').children('ul').attr('id');
for (myul in menuArray) {
var matches = id.match(/^a\d{1,2}b\d{1,2}$/);
if (matches[1]) {
$(myul).css({...});
}
}
});
结果没有任何效果发生,到底哪里出了问题呢?
<ul id="a1b1">...</ul>
...
<ul id="a11b23">...</ul>
...
<ul id="a35b12">...</ul>
...
<ul id="a68b98">...</ul>
<ul id="a68b99">...</ul>
...
<ul id="a100b100">...</ul>/* 数字大于99,不需要修改 */
...
</div>现在我要在所有id=a+数字+b+数字 (数字范围1-99)的 ul 添加一些css样式。
这些数字式无序且非连续性的,我采用 jquery + 正则 判断处理, 我的代码如下:jQuery(document).ready(function(){
var menuArray = $('.menu').children('ul');
var id = $('.menu').children('ul').attr('id');
for (myul in menuArray) {
var matches = id.match(/^a\d{1,2}b\d{1,2}$/);
if (matches[1]) {
$(myul).css({...});
}
}
});
结果没有任何效果发生,到底哪里出了问题呢?
你的代码,真的很新奇啊。我见过for(var i=0;i<8;i++)和foreach(i in m ),还真没有见过for(i in m)的。还有这个matches[1]是什么意思?
for (myul in menuArray) {
var regexq=/^a\d{1,2}b\d{1,2}$/g;
if (regexq.test(id)) {
$(myul).css({...});
}
}
$('.menu').find('ul').each(
function(){
if(re.test($(this).attr('id'))){
$(this).html("true");
}
}
)
用下面的一段HTML测试可正常获取匹配。<div class="menu">
<ul id="a1b1">1-1</ul>
<ul id="a11b23">11-23</ul>
<ul id="a35b12">35-12</ul>
<ul id="a68b98">68-98</ul>
<ul id="a68b99">68-99</ul>
<ul id="a100b100">100-100</ul>
</div>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<script type="text/javascript" src="jquery-1.6.2.min.js"></script>
<script type="text/javascript">
$(function(){
$(".menu").children("ul").each(
function(){
if($(this).attr("id").match(/^a\d{1,2}b\d{1,2}$/))
{
$(this).css("color","red");
}
}
);
});
</script>
</head>
<body>
<div class="menu">
<ul id="a1b1">1-1</ul>
<ul id="a11b23">11-23</ul>
<ul id="a35b12">35-12</ul>
<ul id="a68b98">68-98</ul>
<ul id="a68b99">68-99</ul>
<ul id="a100b100">100-100</ul>
</div>
</body>
</html>