参考如下代码:
<html>
<body>
<div id="menu">
<ul>
<li >我是1</li>
<li id="m_1">
<ul>
<li>1111111111</li>
</ul>
</li>
<li >我是2</li>
<li id="m_2">
<ul>
<li>2222</li>
</ul>
</li>
</ul>
</div>
<button onclick="buttonClick()">test</button>
<script type="text/javascript">
function scanChild(parent, regexp, output) {
for (var i = 0; i < parent.childNodes.length; i++) {
if (regexp.test(parent.childNodes[i].id)) {
output.push(parent.childNodes[i]);
}
scanChild(parent.childNodes[i], regexp, output);
}
}
function buttonClick() {
var output = [];
scanChild(document.getElementById("menu"), /^m_\d+$/g, output);
var msg = "";
for (var i = 0; i < output.length; i++) {
msg += output[i].id + "\r\n";
}
alert(msg);
}
</script>
</body>
</html>
<html>
<body>
<div id="menu">
<ul>
<li >我是1</li>
<li id="m_1">
<ul>
<li>1111111111</li>
</ul>
</li>
<li >我是2</li>
<li id="m_2">
<ul>
<li>2222</li>
</ul>
</li>
</ul>
</div>
<button onclick="buttonClick()">test</button>
<script type="text/javascript">
function scanChild(parent, regexp, output) {
for (var i = 0; i < parent.childNodes.length; i++) {
if (regexp.test(parent.childNodes[i].id)) {
output.push(parent.childNodes[i]);
}
scanChild(parent.childNodes[i], regexp, output);
}
}
function buttonClick() {
var output = [];
scanChild(document.getElementById("menu"), /^m_\d+$/g, output);
var msg = "";
for (var i = 0; i < output.length; i++) {
msg += output[i].id + "\r\n";
}
alert(msg);
}
</script>
</body>
</html>
解决方案 »
- 求大神加注释..
- 怎样获得iframe里的 window对象??
- 取不到js对象里面的值, 请大家帮忙。
- 一个动态的2级菜单
- 怎样判断form中的checkbox是否被选中,以及如何将form中的一个控件由disabled变为激活状态?
- 怎样让双击按钮才起作用
- 如何在提交之后不弹出提交后的页面??
- 请教meizz!!和你哪个日历控件有点联系得问题
- genuis(不死鸟)领分,谢谢你的回答!
- 我想根据所选select的值判断一个文本框输入内容是否正确,如果不正确侧给出提示,要求先选select的值,再在文本框中输入内容,
- asp导出excel文件,字符型的数字为何就变成了浮点数显示
- JS 的实现问题 在线等
<script type="text/javascript">
$(document).ready(function(){
var idCount =0;
$("div#menu *").each(function(idx){
if($(this).attr("id").indexOf("m_") != -1){
idCount ++;
}
}); alert(idCount);
});
</script>
<div id="menu">
<ul>
<li >我是1</li>
<li id="m_1">
<ul>
<li>1111111111</li>
</ul>
</li>
<li >我是2</li>
<li id="m_2">
<ul>
<li>2222</li>
</ul>
</li>
</ul>
</div>
var divObj = document.getElementById("menu");
var lis = divObj.getElementsByTagName("li");
var num = 0;
var reg = /^m_(\d)+/;
for(var i=0;i<lis.length;i++){
if(reg.test(lis[i].id)){
num++;
}
}
function lookupByID(dom,to)
{
if( dom.id.substring(0,2)=='m_' )
to.push( dom );
if( dom.childNodes ) for(var i=0;i<dom.childNodes.length;i++)
lookupByID(dom.childNodes[i],to)
}
var allDoms = [];
lookupByID( document.getElementById('menu'), allDoms );
for(var i=0;i< allDoms .length;i++)
console.log(allDoms [i].id)