2011-12-06 17 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

を使用し、代わりにcell1[1]から要素を作成するので

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

のようなものが表示されるはずですが、 'element.createElement()'有効ですか?私は 'createElement()'は 'document'の単なるメソッドだと思っていました。 –

+1

あなたのhtmlコードは何ですか? avz_tabelleの行にも2つのセルが含まれていますか?なぜあなたはobjのparentNodeの行インデックスを取得する必要がありますか? – Bergi

+1

どこからエラーが出ますか?あなたが何も得られない場合は、正確に何が*予想外のものであるかを教えてください。 – Bergi

答えて

4

デバッグコンソールで見れば、あなたはdocument.createElement()

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

あなたはいつものようにdocument.createElement("input");代わりのcell1[1].createElement("input");

を使用(およびとしても、ここで別の答えに記載されている)必要があり、JavaScriptコンソールは、上のヒントを探すための最初の場所でなければなりません何が問題なの?

各テーブルセルに値を追加して別々のIDを取得すると、実際にはそれほど簡単にはなりませんか?たぶん行インデックスと列インデックスを含むもの...次に、直接それを選択することができます。

関連する問題