2012-05-28 3 views
2

에서 돔 노드를 제거 할 때 나는 다음과 같은 ASP (JS 버전) 코드를 :오류 돔 문서

var doc = Server.CreateObject("HTMLFILE"); 
var doc.write(content); 
// the value of content has been set elsewhere and is not of concern 
var elements = doc.getElementsByTagName("br"); 

지금까지 너무 좋아. 여기에 문제가 생기는 곳이 있습니다 :

마지막 코드 조각으로 인해 웹 사이트에 "페이지를 표시 할 수 없습니다."라는 메시지가 표시됩니다. 내가 이해하지 못하는 장면 뒤에 뭔가가 있습니까? 하위 노드를 제거 할 수없는 이유는 무엇입니까? 기존 노드의 속성을 수정하는 것처럼 노드를 추가해도 문제가 없지만 노드를 제거 할 수는 없습니다.

if (elements && elements.length > 0) 
    elements[0].parentNode.removeChild(elements[0]); 

을 또는 때때로 도우미 기능을 가지고 도움 : 노드의 부모에 호출해야

+0

서버 측 코드에서 HTML DOM을 사용하는 흥미로운 방법입니다. 그러나 내 ASP 서버의 클라이언트 응용 프로그램에서 사용할 것으로 예상되는 구성 요소를 사용하는 것이 걱정됩니다. – AnthonyWJones

답변

2

removeChild()는 다음과 같이 제거되는

function removeNode(node) { 
    node.parentNode.removeChild(node); 
} 

과를, 당신은이 작업을 수행 할 수 :

if (elements && elements.length > 0) 
    removeNode(elements[0]); 
+0

+1 전적으로 주제를 벗어난 노트는 콜렉션이 항상 반환되기 때문에 조건의 '요소 &&'부분이 필요 없다는 것입니다. –

+0

고마워, 그 트릭을하는 것처럼 보였다. w3schools에서 저의 사례를 얻었고 항상 올바른 정보를 제공하지는 않습니다. – user1060817

+0

Google 검색에서 w3schools를 차단했습니다. 그 이유는 그러한 정보가 불충분하고 불완전하기 때문입니다. 다른 출처를 사용하십시오. MDN은 더 나은 출처 중 하나입니다. 필자는 MDN 키워드로 대부분의 내 검색을 시작했습니다. [' "mdn removechild"'] (https://www.google.com/search?sugexp=chrome,mod=15&sourceid=chrome&ie=UTF-8&q=mdn+removechild) 그들이 무엇을 먼저 말하는지보기. – jfriend00