*/
//모든 하위 노드를 재귀적으로 순회
function CheckNode(currentNode)
{
var childNode=new Array()
var parentNodeChild=new Array()
var isChecked;
childNode=currentNode.getChildren();
if(currentNode.getAttribute('checked'))
{
isChecked=true;
}
else
{
isChecked=false;
}
//상위 노드 처리
if(currentNode.getParent()!=null)
{
//선택된 처리
if(currentNode.getAttribute ('선택됨'))
{
ParentNode(currentNode);
}
else
//선택 취소
{
ChildNode(currentNode)
}
}
else
{
//아무 작업도 하지 않음
}
//하위 노드 처리
if(childNode.length>0)
{
for(var i=0;i
childNode.setAttribute("Checked",isChecked)
if(childNode.getChildren().length>0)
{
CheckNode(childNode)
}
}
}
}
//재귀적으로 상위 노드 선택
function ParentNode(currentNode)
{
if(currentNode.getParent()!=null)
{
currentNode.getParent().setAttribute('Checked',true)
//재귀적으로 ParentNode(currentNode)를 호출하여 업데이트를 트래버스합니다. 이전 레이어의 노드
ParentNode(currentNode.getParent());
}
}
//재귀적으로 상위 노드 선택 취소
function ChildNode(currentNode)
{
if(currentNode.getParent()!=null)
{ var checkCount=0;
var childNode=currentNode.getParent().getChildren()
for (var i=0; i
if(childNode.getAttribute('Checked'))
{
selectedCount ;
}
}
if(checkedCount= =0)
{
currentNode.getParent().setAttribute('Checked',false);
}
//재귀적으로 ChildNode(currentNode)를 호출하여 상위 수준 부모 노드를 순회합니다.
ChildNode (currentNode) .getParent()); 문제
코드 복사