2012-10-27 14 views
0

명확한 대답을 찾지 못한 채 여러 스레드를 읽었습니다. JavaScript 라이브러리 (Drinks.js)를 사용하여 웹 페이지에 여러 위젯을 넣습니다. 다음 코드는 내 div 요소 pnlThermo에 하나 개의 항목을 추가합니다 :여러 appendChild 호출이 작동하지 않습니다.

function create(item) { 
    var thermo = Drinks.createElement('display'); 
    thermo.setAttribute('id', item); 
    thermo.setAttribute('label', item); 
    Drinks.appendChild('pnlThermo', thermo);   
} 

글쎄, 지금은 같은 div 요소에 여러 항목을 추가 할 수 있습니다. 아무리 사이클을 사용하거나 함수를 명시 적으로 호출해도 첫 번째 항목 만 렌더링됩니다. 예 :

create('T1'); 
create('T2'); 
create('T3'); 

표시가 T1 인 경우에만 표시됩니다. 아마도 뭔가를 놓친 것 같아요. JavaScript 프로그래밍을 처음 접해 보았습니다.

고맙습니다.

+0

여기에 뭔가가 빠졌습니까? HTML 요소 ''이 있습니까? – andlrc

+0

매번 동일한 ID를 사용하고 있다고 생각하십니까? –

+0

@GurpreetSingh ID가 'T1, T2, T3'인 이유가 없습니다. – andlrc

답변

0

참조 설명서 (http://goincompany.com/DTManual01.pdf)는 말한다 : 당신이 HTML 요소를 만든 후

, 당신은 HTML 컨테이너에 추가해야합니다. 이렇게하려면 Drinks 클래스에서 제공하는 appendChild 함수를 사용해야합니다. Drinks.appendChild ('body', 게이지); 'body'는 HTML 컨테이너의 ID입니다. 부모가 기기 인 경우이 기능은 작동하지 않습니다. 이 악기의 appendChild 메소드를 사용해야하지만, 나중에 보겠습니다.

는 첫 번째 매개 변수는 거의 의미 하지만 다음 라이브러리가 조금 이상한 이럴입니다 만드는 HTML의 태그 이름, 할 필요가 있다는 것을 의미하는 것 같습니다.

+0

그래, pnlThermo가 표준 div 요소라는 것을 잊어 버렸습니다.

Mark

+0

body 태그의 onLoad 이벤트 내에서 호출하면 여러 appendChild 함수가 작동하지 않는 것이 문제입니다.예 : 이 작동하지 않습니다. 대신 : 잘 동작합니다. Drinks.js 코드 또는 일반적인 자바 스크립트 프로그래밍과 관련된 문제인지 이해할 수 없습니다. – Mark

+0

작동하지 않는 시나리오에서는 InitBoard가 생성 된 후에야 호출됩니다. 두 번째로, 존경은 사실입니다. 나는 일반적으로 onLoad를 사용하지 않지만 body 태그 다음과 HTML 태그 앞에 모든 JS 스크립트를 넣어 실행 순서가 완벽하게 정리되도록합니다. – HBP

관련 문제