Ich habe eine Tabelle, die dynamisch über JavaScript auf der Grundlage von Daten aus einer SQL-Abfrage generiert wird. Die erste Zelle enthält eine Schaltfläche, die den Wert in der 2. Zelle innerhalb dieser Zeile abrufen soll. Aus irgendeinem Grund wird das jQuery onclick -Ereignis nicht ausgelöst. Im Browser werden keine Fehler angezeigt.Wert aus Zelle in dynamisch generierter Tabelle erhalten
HTML
...
for (var i=0; i<queryReturned.Result.length; i++) {
var tableRow = document.createElement("tr");
var cell = document.createElement("td");
var button = document.createElement("button"); //Button gets added here
button.type = "button";
button.value = "Remove Alert";
button.className = "buttonSelect"
cell.appendChild(button);
tableRow.appendChild(cell);
//This loop creates the rest of the cells and fills in their data
for (var j=0; j<Object.keys(queryReturned.Result[i]).length; j++) {
var cell2 = document.createElement("td");
var cellText = document.createTextNode(Object.values(queryReturned.Result[i])[j]);
cell2.appendChild(cellText);
tableRow.appendChild(cell2);
}
tableBody.appendChild(tableRow);
}
table.appendChild(tableBody);
table.setAttribute("border", "2");
body.appendChild(table);
...
jQuery
$(document).ready(function(){
$(".buttonSelect").on('click',function(){
var currentRow=$(this).closest("tr");
var col2=currentRow.find("td:eq(1)").html();
alert(col2); //alert for now to test if we grabbed the data
});
});
Formulieren Sie Ihre Event-Handler-Funktion wie folgt: '$ (document) .auf ('klicken', '.buttonSelect', function() {...});' so wird es funktionieren für dynamisch hinzugefügte Elemente. (Ich bin nicht 100% sicher, ob '$ (this) 'das gleiche wie in deiner Version ist.) – connexo
Danke @connexo. Das hat den Trick gemacht. Sie sollten das als Antwort hinzufügen, damit ich Ihnen die gebührende Anerkennung geben kann! –