2017-10-02 14 views
0

私は、関数が呼び出されたときに特定のクラスのすべての選択入力の値を変更する必要があるプロジェクトに取り組んでいます。問題は、domが最初にロードされたときに選択入力の一部が存在しないことです.Javascriptを使用して動的に作成されます。JQUERY DOM:Dom Load後に作成された要素を選択

この関数は、ページが読み込まれたときに存在するすべての選択入力を選択するのにうまく機能しますが、domに動的に追加された選択入力に対しては機能しません。

私はイベントバインディングが.onであることを理解していますが、この特定のケースでは、クリックのようなイベントを押さえようとしていません。この関数が呼び出されたときにこのクラスのすべての要素を取得したい。

ここでは、新しいselect要素を作成するために使用しているコードを示します。

var this_cell = document.getElementById('produce_batch_line_td['+x+']'); 

var new_select = document.createElement("select"); 

new_select.name = "produce_batch_line["+x+"]"; 
new_select.id = "produce_batch_line["+x+"]";   
new_select.className = "produce_batch_line["+invoice_number+"]"; 

this_cell.appendChild(new_select); 

var new_option = document.createElement("option"); 
new_option.text = "test"; 
new_option.value = "test"; 
new_select.add(new_option); 

ここに、このクラスのすべての選択要素を選択するためのコードを示します。

function SetDetailValue(invoice_number, obj) { 

    $(".produce_batch_line\\["+invoice_number+"\\]").each(function() { 

     this.value = obj.value; 

    }); 

} 

DOMにこのクラスのアイテムを動的に追加するにはどうすればよいですか?

+0

Prollyこれに答えるために、あなたのHTMLマークアップを見に必要になります。 – bassxzero

答えて

0

このリンクを確認してください。私はすでに存在するものを置いています。また、追加ボタンをクリックすると動的に作成されます。設定ボタンをクリックすると、Javaクエリーでそれらを検索し、forループに入れて、それぞれの値を1つずつ変更します。

http://cr8code.co/editor.php?workid=1a446530189d751d0b15ce104a286eee

Here is the DEMO

+0

あなたの例をお寄せいただきありがとうございます。私のコードは動作していません。何らかの理由でそれが今働いているので、私はこれを答えとしてマークします。ありがとう。 –

+0

私は現在の要素を動的に追加したり、関数が起動したときにすでに存在していたとしても、それをチェックしているfind関数を使用しました。それは私のコードがそれらを見つけて、動作する理由です。ありがとうbtw。 –

+0

@GüneySaramalıデモをありがとうございました。 StackOverflowの '<! - begin snippet:...>'機能を使って、あなたの投稿にインラインで挿入できると思いますか? –

関連する問題