2013-05-23 4 views
2

내가자바 스크립트 오류 :

Uncaught TypeError: Object #<HTMLInputElement> has no method 'removeNode' 

처럼 크롬에 자바 스크립트 오류가 발생하고있다 "catch되지 않은 형식 오류 개체 #은 '가 removeNode'있는 방법이 없습니다"내 코드는

if (document.form["act[" + actArry["'" + i + "'"][i] + "]"] != undefined) 
    document.form["act[" + actArry["'" + i + "'"][i] + "]"].removeNode(true); 

과 값입니다 그 input 요소에 저장되어있는이

<input type="hidden" name="act[1]" value="7813e7-true"> 

는 사실 내가을 제거 할 것입니다 checkboxunchecked 일 때.

IE에서는 제대로 작동하지만 Google 크롬에서는 제대로 작동하지 않습니다.

아무도 내게 어떤 문제가 있으며 IE와 Chrome 모두에서 일반적인 방법이어야한다고 말할 수 있습니까? jQuery에 대안이 있습니까?

+0

입력의 _value_ 만 변경하려면 제거 할 필요가 없습니다. '.value'를 원하는대로 변경할 수 있습니다. –

+0

컨트롤 이름 표현식의'' '' '와 테스트의'! = undefined'를 드롭 할 수 있습니다. – RobG

답변

7

removeNode()은 IE 전용 방법입니다. 다른 브라우저에서는 작동하지 않습니다.

상위 노드에서 removeChild()을 수행하면 크로스 브라우저와 동일한 결과를 얻을 수 있습니다.

즉 :

if (node.parentNode) 
    node.parentNode.removeChild(node); 

참조 : http://www.sitepoint.com/forums/showthread.php?126312-Mozilla-equivalent-for-IE-s-removeNode()

+1

['.removeChild'] (https://developer.mozilla.org/en-US/docs/Web/API/Node.removeChild)를 사용해야합니다. 주목할만한 점은'.remove'가 2 주 전에 DOM API에 포함되었다는 것입니다. 그래서 우리는 나중에 비슷한 기능을 가질 수 있습니다 :) –

+0

@BenjaminGruenbaum - 감사합니다. 정보가 추가되었습니다. – techfoobar

+0

+1 나부터. 귀하의 매우 빠른 회신을 주셔서 감사 드리며 매력처럼 작동하고 있습니다. 그리고 철저히 설명하고 또한 자세한 정보를 위해 @BenjaminGruenbaum에게 감사드립니다. – NullPointer

1

당신은에서 removeChild를 사용할 수 있습니다, 그것은 대부분의 브라우저에서 작동합니다.