2017-04-10 3 views
1

내가 가지고 UI, , BLANK2를 새로운 것으로 대체합니다. 이것은 STATUS div를 제외하고는 작동합니다. 오류가 발생하면자바 스크립트 오류 : catch되지 않은 형식 오류 : '노드'에 '로 removeChild'을 실행하지 못했습니다 : BLANK 당신이 싸움을 누를 때 div의이 싸움 STATUS 네 전류를 삭제 매개 변수 1 유형이 아닌 '노드'

"Uncaught TypeError: Failed to execute 'removeChild' on 'Node': parameter 1 is not of type 'Node'."

이 표시되고 다른 div는 삭제되지 않습니다. 나는 상태 DIV parent0.removeChild(status);을 제거 코드를 촬영하면 코드는 상태 DIV의 삭제의 명백한 제외하고 올바르게 작동합니다. 그 4 명 div의이 UI라는 이름의 사업부 내에 중첩되어 있기 때문에

나는 완전히 혼란 스러워요, 나는 오류가 상태가 UI의 아이가 아닌 사실을 언급하고 가정? 그렇게해서는 안됩니다. 어떤 도움이라도 감사 할 것입니다.

JSfiddle :

https://jsfiddle.net/razorleaff/abks2dvq/3/ 
+0

제거 할. – NewToJS

+0

'status' 다른 내 문제 해결 감사합니다 뭔가 상태에서 ID를 변경 자바 스크립트 예약어 – Beginner

답변

0

하는 것은 나쁘다 이 같은 문제를 일으키는 연습, 상태 이후 는 자바 스크립트 예약어 대신의 광주를하고있다 ST는

parent0.removeChild(document.getElementById('status')); 

Definition and Usage The removeChild() method removes a specified child node of the specified element.

노드가 존재하지 않는 경우 제거 된 노드 객체로서 노드를 돌려줍니다 않습니다.

Parameter | Type | Description 
    node  Node object  

필수 입력란입니다. `내가 어디 정의되는 표시되지 않습니다; 노드 객체는 당신이`status`이 parent0.removeChild (상태) '에 대해 정의

Updated Fiddle here

+0

코드가 내 문제를 해결합니다. 나에게 알리고 removeChild()를 사용하는 적절한 방법을 보여 주셔서 감사합니다. 나는 자바 스크립트 예약어에 대해 완전히 잊었다. – Razorleaff

+0

'status'는 [예약어] 아니다 (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#Reserved_keywords_as_of_ECMAScript_2015). [Pig Ball의 답변] (http://stackoverflow.com/a/43317786/778975)에서 알 수 있듯이, 브라우저에서 전역 객체 인'window' 객체의 속성 인'status'를 전역 변수로 만듭니다 이는 ['window.status'] (https://developer.mozilla.org/en-US/docs/Web/API/Window/status)를 참조합니다. –

1

문제는 window 객체가 status이라는 속성을 가지고 있으며, 당신이 id를 통해 상태 요소에 액세스 할 수 있습니다. 그래서, 코드가 있어야한다 : 대신의

parent0.removeChild(document.getElementById('status')); 

(항상 id를 사용하여 요소를 얻을 수 document.getElementById 사용) : 그런 식으로

parent0.removeChild(status); 

을하는

parent0.removeChild(status); 
+0

입니다. – Razorleaff

관련 문제