2017-10-02 1 views
0

Ich arbeite an einem Projekt, wo ich den Wert aller ausgewählten Eingänge einer bestimmten Klasse ändern muss, wenn eine Funktion aufgerufen wird. Das Problem ist, dass einige der Auswahleingaben nicht existieren, wenn dom zum ersten Mal geladen wird, sie werden dynamisch über Javascript erzeugt.JQUERY DOM: Elemente nach Dom Load auswählen

Die Funktion eignet sich zum Auswählen aller Auswahleingänge, die beim Laden der Seite vorhanden waren, funktioniert jedoch nicht für ausgewählte Eingaben, die dynamisch zum Dom hinzugefügt wurden.

Ich verstehe Ereignisbindung mit .on, aber in diesem speziellen Fall versuche ich nicht von einem Ereignis wie Klick abzuschalten. Ich möchte alle Elemente dieser Klasse erhalten, wenn diese Funktion aufgerufen wird.

Hier ist der Code, den ich verwende, um die neuen Select-Elemente zu erstellen.

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); 

Hier ist der Code, den ich verwende, um alle ausgewählten Elemente dieser Klasse auszuwählen.

function SetDetailValue(invoice_number, obj) { 

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

     this.value = obj.value; 

    }); 

} 

Wie kann ich Objekte dieser Klasse dynamisch zum Dom hinzugefügt bekommen?

+0

gehen Prolly zu müssen Ihre HTML-Markup, um zu sehen, dies zu beantworten. – bassxzero

Antwort

0

Überprüfen Sie diesen Link. Ich habe ein bereits existierendes gegeben. Und wenn Sie auf "Hinzufügen" klicken, wird auch dynamisch erstellt. Wenn Sie auf die Schaltfläche set klicken, werden sie mit einer Java-Abfrage gefunden und in eine for-Schleife gestellt, die jeden Wert einzeln ändert.

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

Here is the DEMO

+0

Danke für dein Beispiel, es sieht so aus, als ob du genau das machst, was ich mache, aber mein Code hat nicht funktioniert. Aus irgendeinem Grund funktioniert es jetzt, also werde ich das als beantwortet markieren. Vielen Dank. –

+0

Ich habe 'find' -Funktion verwendet, die aktuelle Elemente überprüft, egal, ob sie dynamisch hinzugefügt wurden oder bereits vorhanden waren, als die Funktion ausgelöst wurde. Deshalb findet mein Code sie und arbeitet. Danke übrigens. –

+0

@ GüneySaramalı danke für die Demo. Denkst du, du könntest es in deinem Beitrag einfügen, indem du die Funktion "" aus StackOverflow nutzt? –