2012-04-21 27 views
2

私は、ページに3つの入力を持つdivと同じdivに入力を追加するためのリンクを追加するjavascript関数を持っています。動的に追加することができます)。JavaScript:現在のdivに入力要素を追加

var div=document.createElement("div"); 
div.innerHTML='<input type="text" name="question" /><br><br>'+ 
       '<input type="text" name="input1"/><br />'+ 
       '<input type="text" name="input2"/><br />'+ 
       '<a href="javascript:addInput()">Add input field</a>'; 

var parent_div=document.getElementById('dinamicni_div'); 
parent_div.appendChild(div); 

どのように私は今(現在INPUT2)(ただし、上記のリンク)と同じdiv要素内の最後の入力以下の入力を追加するには、このaddInput()関数を実装するだろうか?

私はコンテンツを動的に生成する2つのJS関数を持っています:addDiv()。これは上記のように短縮されています。私が実装したいと思うaddInput()とリンクがクリックされた現在のdivに1つの入力を追加する必要があります。

+0

改善しようとしている機能を確認できますか? –

+0

これはまだ実装されていませんが、今では実装のヒントを得ました:) –

答えて

1

あなたが作成したdivの中に入力フィールドを含むdivを追加すると、以前と同じように子を追加して新しい要素を簡単に追加できます。

+0

ありがとう、これは私の視点から見れば最もエレガントな答えです。このjQueryソリューションを使用します。 –

+0

レイアウトとjQueryを組み合わせてシンプルでエレガントにすることができます:) –

+0

jQueryを使用すると、2,3年前に簡単に作業していたように簡単にはできません:) –

3

あなたのリンククラスやIDを与えると、このメソッドを使用して挿入します。http://api.jquery.com/insertBefore/

編集:

私は同意し、彼の要件は、それを可能にするであろうことを、質問はjqueryのではないでした、まだアスカーが示唆、および完全性のために、ここでのjQueryのコードは(学習のjqueryのポスター不当な脅迫を取ること)である

function createInputMethod(){ 
    return $('<input type="text" name="question" /><br><br>'+ 
       '<input type="text" name="input1"/><br />'+ 
       '<input type="text" name="input2"/><br />'); 
} 

var div = $("<div/>"); 
div.append(createInputMethod()); 
div.append($('<a href="javascript:addInput()" id="btn">Add input field</a>'); 
var parent_div=$('dinamicni_div'); 
div.appendTo(parent_div); 

function addInput(){ 
    createInputMethod().insertBefore("#btn"); 
} 
+1

jQueryの質問? –

+0

これは、実際にはjQueryですが、それでも言及してくれてありがとう、それはいいと思うし、jQueryを学ぶべきです:) –

+0

@AndrewWhitaker、いいえ、私はまだオッズを好きでした – mindandmedia

5

をお試しください
document.getElementById('yourdiveID').innerHTML += "<input type='text' value='' /><br />"; 

divの最後に追加されます。

+0

このメソッドはリンクを入力した後に追加します入力が自分のdivにある場合。ありがとう –

1

私はこのようなことをします。すべての入力を取得します。入力数をカウントし、jquery afterメソッドを使用して追加します。

function addInputMethod() { 

    var len = $('div').find('input').length; 


    $('input:nth-child(' + len + ')').after('<input type="text" name="input' + (len + 1) +'"/><br />'); 
} 

EDIT

あなたはまた、第2ラインを変更するには、この

var len = $(this).parent().find('input').length;

に長さを変更することができますdivためidをお持ちでない場合は、次のコードは次のようなものです

$(this).parent().find('input:nth-child...

+0

うわー、これも素晴らしいです! –

+0

1つの質問 - 私はこれらの入力を含むこれらのdivの多くを持っているので、どのリンクからリンクされた機能にリダイレクトされたのかをどのように知ることができますか? –

+0

Nevermind;私はそれを考え出した。私は機能するためのパラメータを渡すだけです。 –

関連する問題