2014-04-17 2 views
-1

for 루프를 사용하여 고유 ID가있는 이미지 묶음을 만들었습니다. 그들은 다음과 같이 보입니다 :동적으로 생성 된 요소 액세스 및 제거

<img src="image.jpg" id="110021002" /> 
<img src="image.jpg" id="110021003" /> 
<img src="image.jpg" id="110031002" /> 
... 

나중에 코드에서 이미지 중 하나를 선택하여 제거하고 싶습니다.

var removeId = '110021002'; 
var img = document.getElementById(removeId); 
img.parentNode.removeChild(img); 

그러나 나는 다음과 같은 오류를 얻을 : 나는 다음과 같은 노력

Cannot read property 'parentNode' of null 

여기에 무슨 일이 일어나고 있는지 확신하지 않습니다. 이미지가 동적으로 생성 되었기 때문입니까?

+0

이미지를 문서에 어떻게 추가하고 있습니까? 당신은 당신이 그것을 동적으로 추가하고 있다고 말했지만 아무런 예도 제시하지 않았습니다. –

+0

그 오류는 그 시점에'img'가'null'이라는 것을 의미합니다. 그것을보기 위해'console.log'를 통해. 제거하려고하는 'id'는 이미지와 일치하지 않아야합니다. –

+0

'img'는'null'입니다. ''이 (가) 없습니다. 이미지를 어떻게 인스턴스화합니까? 언제 "제거 코드"를 호출합니까? 문맥에 맞게 질문을 업데이트하십시오. – cychoi

답변

2

코드 처음으로 요소을 제거하면 두 번째 시도에서 명백하게 요소가 없으며 주어진 오류가 발생합니다. 바이올린에

: 한 번

  • 클릭, 다시
  • 클릭 작동이 ID를 가진 요소가 더 이상 없기 때문에 실패합니다.

네, 숫자는 숫자로 시작할 수 있습니다.

**Attribute ID** Specifies a unique id for the element. Naming rules: 
Must contain at least one character 
Must not contain any space characters 
In HTML, all values are case-insensitive 
+0

고맙지 만이 예제에서는 먼저 이미지를 동적으로 생성하는 것을 포함하지 않습니다. 문제의 원인 일 수 있습니다. – Coop

+0

들어 봐, 당신이 다른 이유로이 문제로 인해 제기 한 문제는 그것이 당신이 제기 한 질문이 아닙니다. 내 대답은이 특별한 문제를 해결합니다. – bitoiu

+0

이해가 안됩니다. 문제는 요소를 두 번 이상 제거하려고하는 것이 아닙니다. 또한 나는 동적 요소 생성이 문제가되는 것에 대해 우려하고 있음을 분명하게 지적했다. – Coop

-1

start with a number의 ID를 사용할 수 없습니다. 그들 앞에 접두어를 붙이십시오.

+1

사실,'HTML5'에서는 이제 할 수 있습니다. http://mathiasbynens.be/notes/html5-id-class –

+0

와우 나는 어떻게 든 그것을 간과했다! 감사. –

+1

예 HTML5는 ID가 숫자가되도록 허용합니다 – Coop