<body></body>
<script type="text/javascript">
function showNode(){
var next = this.nextSibling;
var nodes = [];
var root = this.firstChild.innerHTML.split("+")[1];
while(next){
var text = next.cells[0].innerHTML.replace(/ | /g, "");
var reg = new RegExp("^\\+?" + root + ".*$");
if(reg.exec(text)){
nodes.push(text);
next = next.nextSibling;
}else{
next = null;
}
}
alert(nodes.join("\n"));
}
var showStruct = function (struct, element,left) {
var type, i;
left = left||""
for (i in struct) {
type = typeof struct[i];
if (/string|number/.test(type))
{
var tr = document.createElement("tr")
element.appendChild(tr)
var td = document.createElement("td")
td.innerHTML=left+" "+i
tr.appendChild(td)
}
else if ('object' == type)
{
var tr = document.createElement("tr")
element.appendChild(tr)
var td = document.createElement("td")
td.innerHTML=left+"+"+i
tr.appendChild(td);
tr.onclick = showNode;
arguments.callee(struct[i],element,left + " ")
}
}
};
var tab =document.createElement("table")
tab.border=1;tab.cellPadding=0;tab.cellSpacing=0;
var tbody = document.createElement('tbody');
tab.appendChild(tbody)
document.body.appendChild(tab)
showStruct( {"1":{"1-1":{"1-1-1":{"1-1-1-1":"99","1-1-1-2":"99","1-1-1-3":"99"}},"1-2":{"1-2-1":"1"}},"2":{"2-1":{"2-1-1":{"2-1-1-1":"99"},"2-1-2":"d","2-1-3":"d","2-1-4":"d"},"2-2":"ss"}},tbody)
</script>
<script type="text/javascript">
function showNode(){
var next = this.nextSibling;
var nodes = [];
var root = this.firstChild.innerHTML.split("+")[1];
while(next){
var text = next.cells[0].innerHTML.replace(/ | /g, "");
var reg = new RegExp("^\\+?" + root + ".*$");
if(reg.exec(text)){
nodes.push(text);
next = next.nextSibling;
}else{
next = null;
}
}
alert(nodes.join("\n"));
}
var showStruct = function (struct, element,left) {
var type, i;
left = left||""
for (i in struct) {
type = typeof struct[i];
if (/string|number/.test(type))
{
var tr = document.createElement("tr")
element.appendChild(tr)
var td = document.createElement("td")
td.innerHTML=left+" "+i
tr.appendChild(td)
}
else if ('object' == type)
{
var tr = document.createElement("tr")
element.appendChild(tr)
var td = document.createElement("td")
td.innerHTML=left+"+"+i
tr.appendChild(td);
tr.onclick = showNode;
arguments.callee(struct[i],element,left + " ")
}
}
};
var tab =document.createElement("table")
tab.border=1;tab.cellPadding=0;tab.cellSpacing=0;
var tbody = document.createElement('tbody');
tab.appendChild(tbody)
document.body.appendChild(tab)
showStruct( {"1":{"1-1":{"1-1-1":{"1-1-1-1":"99","1-1-1-2":"99","1-1-1-3":"99"}},"1-2":{"1-2-1":"1"}},"2":{"2-1":{"2-1-1":{"2-1-1-1":"99"},"2-1-2":"d","2-1-3":"d","2-1-4":"d"},"2-2":"ss"}},tbody)
</script>
<script type="text/javascript">
function showNode(){
var next = this.nextSibling;
var nodes = [];
var root = this.firstChild.innerHTML.split("+")[1];
while(next){
var text = next.cells[0].innerHTML.replace(/ | /g, "");
var reg = new RegExp("^\\+?" + root + ".*$");
if(reg.exec(text)){
nodes.push(text);
next = next.nextSibling;
}else{
next = null;
}
}
alert(nodes.join("\n"));
}
var showStruct = function (struct, element,left) {
var type, i;
left = left||""
for (i in struct) {
type = typeof struct[i];
if (/string|number/.test(type))
{
var tr = document.createElement("tr")
element.appendChild(tr)
var td = document.createElement("td")
td.innerHTML=left+" "+i
tr.appendChild(td)
}
else if ('object' == type)
{
var tr = document.createElement("tr")
element.appendChild(tr)
var td = document.createElement("td")
td.innerHTML=left+"+"+i
tr.appendChild(td);
tr.onclick = showNode;
arguments.callee(struct[i],element,left + " ")
}
}
};
var tab =document.createElement("table")
tab.border=1;tab.cellPadding=0;tab.cellSpacing=0;
var tbody = document.createElement('tbody');
tab.appendChild(tbody)
document.body.appendChild(tab)
showStruct( {"1":{"1-1":{"1-1-1":{"1-1-1-1":"99","1-1-1-2":"99","1-1-1-3":"99"}},"1-2":{"1-2-1":"1"}},"2":{"2-1":{"2-1-1":{"2-1-1-1":"99"},"2-1-2":"d","2-1-3":"d","2-1-4":"d"},"2-2":"ss"}},tbody)
</script>
大概意思明白了
可是这2个正则到底是怎么匹配的不大明白了
next.cells[0].innerHTML.replace(/ | /g, ""); 不知道到底是什么用
("^\\+?" + root + ".*$");这个也一样 他好象只匹配节点目录下的...
请解释下这2个正则吧 (我正则太菜了..................)