Ich verwende JavaScript, um eine HTML-Seite mit Inhalten zu füllen. Einer dieser Inhalte ist ein Button/Link. Der Inhalt wird dynamisch generiert, und wenn der Benutzer die Schaltfläche drückt, muss ich einige Informationen erfassen, die (als Attribut) in die Schaltfläche eingebettet wurden.Was ist die Ursache für diesen Fehler, den ich bekommen habe?
Hier ist der allgemeine Code:
var newCell = newRow.insertCell();
var button = document.createElement("input");
button.type = "image";
button.src = "/images/image.png";
button.setAttribute("customData", "dynamically generated data");
button.setAttribute("onclick", "CustomFunction(this);");
newCell.appendChild(button);
CustomFunction(obj) {
var data = obj.getAttribute("customData"));
};
Als ich in die Funktion erhalten (durch Drücken der Taste), der Browser einen Fehler nach dem Vorbild der cannot getAttribute of null object
wirft.
Aber es scheint zu funktionieren, wenn ich button.src
los werde.
Ich habe bereits einen Weg gefunden, aber ich würde gerne wissen, was dieses Problem verursacht?
EDIT: Hier ist der eigentliche Code:
var newCell = newRow.insertCell();
var button = document.createElement("input");
button.type = "image";
button.src = "/images/image.png";
button.setAttribute("customData", "dynamically generated data (JSON format)");
button.setAttribute("onclick", "CustomFunction(this);");
newCell.appendChild(button);
function CustomFunction(obj) {
buttonObj = obj.querySelector('input[type=image][customData]');
var dataObj = JSON.parse(buttonObj.getAttribute("customData"));
};
Ich würde mit dem Drucken der Argumente beginnen. Also, die erste Zeile der Funktion sagt: 'console.log (Argumente);', um zu sehen, was verfügbar ist. – Fallenreaper
Die Zeile 'var data = obj.getAttribute (" customData "));' ist syntaktisch falsch. – Xufox
Ihr Code [funktioniert gut] (https://jsfiddle.net/bdzd11w5/) nachdem die Syntaxfehler behoben sind und das Beispiel abgeschlossen ist. Sie müssen ein funktionierendes Beispiel veröffentlichen, wenn wir erklären wollen, was schiefgelaufen ist, einschließlich der Implementierungen, die dieses Verhalten ergeben. –