<
HTML
>
<
HEAD
>
<
TITLE
>
emu's test of simple tree
</
TITLE
>
<
SCRIPT
LANGUAGE
="JavaScript"
>
<!--
function
checkSelect(){
var
elm
=
event.srcElement.parentNode;
checkChildrenRecurve(elm);
checkRootRecurve(document.getElementById(
"
root
"
));
}
function
checkChildrenRecurve(elm){
var
li
=
elm.parentNode;
var
ul
=
li.lastChild;
if
(ul.tagName
!=
"
UL
"
)
return
;
var
lis
=
ul.children;
for
(
var
i
=
0
;i
<
lis.length;i
++
){
lis[i].firstChild.firstChild.checked
=
elm.firstChild.checked;
checkChildrenRecurve(lis[i].firstChild)
}
}
function
checkRootRecurve(ul){
if
(ul.tagName
!=
"
UL
"
) {
ul.parentNode.firstChild.firstChild.allChecked
=
ul.parentNode.firstChild.firstChild.checked;
ul.parentNode.firstChild.firstChild.allUnChecked
=
!
ul.parentNode.firstChild.firstChild.checked;
return
;
}
var
lis
=
ul.children;
var
allChecked
=
true
;
var
allUnChecked
=
true
;
for
(
var
i
=
0
;i
<
lis.length;i
++
){
checkRootRecurve(lis[i].lastChild);
allChecked
=
allChecked
&&
lis[i].firstChild.firstChild.checked
&&
lis[i].firstChild.firstChild.allChecked;
allUnChecked
=
allUnChecked
&&
!
lis[i].firstChild.firstChild.checked
&&
lis[i].firstChild.firstChild.allUnChecked;
}
ul.parentNode.firstChild.firstChild.allChecked
=
allChecked;
ul.parentNode.firstChild.firstChild.allUnChecked
=
allUnChecked;
if
(allChecked
||
allUnChecked){
ul.parentNode.firstChild.firstChild.checked
=
allChecked;
ul.parentNode.firstChild.firstChild.indeterminate
=
false
;
ul.parentNode.firstChild.childStatus
=
false
;
}
else
{
ul.parentNode.firstChild.firstChild.indeterminate
=
true
;
ul.parentNode.firstChild.childStatus
=
true
;
ul.parentNode.firstChild.firstChild.checked
=
true
;
}
}
function
init(){
var
elms
=
document.getElementsByTagName(
"
INPUT
"
);
for
(
var
i
=
0
;i
<
elms.length;i
++
)
elms[i].onclick
=
checkSelect;
}
//
-->
</
SCRIPT
>
</
HEAD
>
<
BODY
onload
="init()"
>
<
div
>
<
span
><
input
type
=checkbox
></
span
>
<
UL
id
=root
>
<
LI
><
span
><
input
type
=checkbox
></
span
>
<
UL
>
<
LI
><
span
><
input
type
=checkbox
></
span
>
<
UL
>
<
LI
><
span
><
input
type
=checkbox
></
span
>
<
LI
><
span
><
input
type
=checkbox
></
span
>
</
UL
>
<
LI
><
span
><
input
type
=checkbox
></
span
>
<
UL
>
<
LI
><
span
><
input
type
=checkbox
></
span
>
<
LI
><
span
><
input
type
=checkbox
></
span
>
</
UL
>
</
UL
>
<
LI
><
span
><
input
type
=checkbox
></
span
>
<
UL
>
<
LI
><
span
><
input
type
=checkbox
></
span
>
<
UL
>
<
LI
><
span
><
input
type
=checkbox
></
span
>
<
LI
><
span
><
input
type
=checkbox
></
span
>
</
UL
>
<
LI
><
span
><
input
type
=checkbox
></
span
>
<
UL
>
<
LI
><
span
><
input
type
=checkbox
></
span
>
<
LI
><
span
><
input
type
=checkbox
></
span
>
</
UL
>
</
UL
>
</
UL
>
</
div
>
</
BODY
>
</
HTML
>