2011-12-06 3 views
2

멍청한 질문에 대해 죄송합니다. 필자는 필 요한 경우 새 필드를 추가 할 수있는 입력 필드가있는 테이블을 만들고 싶습니다. 그러나 다른 입력 필드가 이미있는 셀 내부에서 다른 입력 필드를 추가하는 방법을 알 수 없습니다.입력란을 표 셀에 삽입하는 방법은 무엇입니까?

내 코드는 다음과 같습니다

var par=obj.parentNode; 
while(par.nodeName.toLowerCase()!='tr') 
{ par=par.parentNode; } 
// this gives me the index of the row.. works fine. 

cell1=document.getElementById('avz_tabelle').rows[par.rowIndex].cells; 
// this puts the content of the cells into the array "cell1" 

var feld = cell1[1].createElement("input"); 
feld.setAttribute("name","avz_keywords" + avz_array + "[]"); 
feld.setAttribute("onblur",""); 
feld.setAttribute("type","text"); 
feld.setAttribute("size","30"); 
// Now I create a input element 
// And now comes the problem: 

cell1[1].appendChild(feld); // --> doesn't work 

누군가 나를 위해 제안을 했습니까? 테이블없이 일할 생각이 들었습니다. 이론적으로는 내 방식대로 작동 할 것입니다. 그러나이 만족되지 않을 것 :/

+2

는'element.createElement()'유효한가 사용을 참조해야합니까? 나는'createElement()'가'document'의 유일한 메소드라고 생각했습니다. –

+1

HTML 코드가 무엇입니까? avz_tabelle의 행에도 두 개의 셀이 포함되어 있습니까? 왜 parentNode의 행 인덱스를 obj로 가져와야합니까? – Bergi

+1

어디서 오류가 있습니까? 아무 것도 얻지 못할 경우, 어떤 게시물을 올리면 * 예상치 못한 * 것이 정확히 작동하는지 알려주십시오. – Bergi

답변

4

당신은 디버깅 콘솔에서 보면, 당신은

TypeError: Object #<HTMLDivElement> has no method 'createElement' 

대신 cell1[1]의 요소를 생성, 같은 것을 document.createElement()

var feld = document.createElement("input"); 
2

당신은, 자바 스크립트 콘솔에 대한 힌트를 찾기 위해 먼저해야한다 언제나 대신 cell1[1].createElement("input");

document.createElement("input");를 사용 (하고 또한 다른 대답을 여기에 명시)한다 무슨 문제 야!

각 테이블 셀에 값을 추가하여 별도의 ID를 얻으려면 실제로 그렇게 쉽지 않을까요? 아마도 행 인덱스와 열 인덱스가 포함 된 것입니다. 그러면 직접 선택할 수 있습니다.

관련 문제