문제

DOM 방식 getChildNodes() 반환합니다 NodeList 현재의 아이들 중 Node.동안 NodeList 순서가 지정되어 있으면 목록이 문서 순서대로 유지됩니까?

예를 들어, 주어진 <a><b/><c/><d/></a> ~이다 a.getChildNodes() 반환을 보장 NodeList ~와 함께 b, c 그리고 d 그와 같은 순서로?

그만큼 javadoc 이에 대해서는 명확하지 않습니다.

도움이 되었습니까?

해결책

내 경험상 그렇습니다.그만큼 DOM 사양 더 명확하지 않습니다.편집증이 있다면 다음과 같은 것을 시도해보세요

current = node.firstChild;
while(null != current) {
    ...
    current = current.nextSibling;
}

다른 팁

문서순으로 정렬된 노드 목록은 Javascript나 Python과 같은 DOM의 다른 구현에서의 동작입니다.그리고 무작위로 정렬된 노드 목록은 전혀 쓸모가 없습니다.문서 순서대로 반환되는 노드에 의존하는 것이 안전하다고 생각합니다.

내 경험으로는 내가 귀찮게 보려고 할 때마다 문서 순서대로 되어 있었습니다.하지만 어딘가에서 읽은 내용이 문서 순서대로 보장되지는 않는다고 생각합니다.지금은 어디서 읽었는지 찾을 수 없으므로 소문으로 받아들이십시오.내 생각엔 네가 한다면 가장 좋은 방법이 될 것 같아 ~ 해야 하다 문서 순서대로 사용하려면 형제가 더 이상 없을 때까지 FirstChild를 사용한 다음 NextSibling을 사용하는 것입니다.

나는 이것이 보장된다고 말하고 싶습니다. (내가 믿는 것처럼) 문서 개체 모델 사양 이 경우에는 그 자체가 모호해 보입니다.그래도 항상 문서 순서라고 확신합니다.

귀하의 예에서 제시된 바와 같습니다.나는 그렇다고 믿는다.그러나 저는 공간이 노드로 해석되는 실제 경험을 경험했습니다.


<a><b/><c/><d/></a>

와는 다르다


<a><b/> <c/><d/></a>

인덱스 [1]을 보면 Firefox와 IE가 다른 결과를 나타낼 수 있습니다.귀하의 필요에 따라 주문에 의존하지 않는 것이 좋습니다.

예, nodeList를 반환하므로 순서가 지정됩니다. NamedNodeList처럼 순서가 지정되지 않은 목록을 얻으려면 getNamedChildNodes라고 말해야 합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top