Je reçois un $("<div/>").text(value).html is not a function
erreur de $("<div/>").text(value).html is not a function
dans le code ci-dessous:
function htmlEncode(value) { return $('<div/>').text(value).html(); } function startImageUpload(imageuploadform, imagefilename){ $('.imagef1_cancel').eq(window.lastUploadImageIndex).html( '<div>' + htmlEncode(imagefilename) + '<button type="button" class="imageCancel" cancel_image_file_name="' + imagefilename + '">CANCEL</button></div>' ); return true; }
Comment cette erreur peut-elle être corrigée?
Je ne suis pas sûr de ce que vous voulez, mais certainement l'erreur est dans cette ligne
return $('<div/>').text(value).html();
Si vous souhaitez envelopper cette valeur image dans un div, utilisez simplement |
function htmlEncode(value) { return '<div><img src="'+value+'"/></div>'; //wrapping it as an image most probably you want this }
La sortie de
$('<div/>').text(value)
Est une String et non un objet Jquery.
Avez-vous essayé ceci
$($('<div/>').text(value)).html();
Le code fonctionne bien en soi:
http://jsfiddle.net/Guffa/aae24/
Vous devriez vérifier quelque chose d'étrange dans la chaîne que vous envoyez dans la fonction, qui pourrait gâcher le code créé. Cependant, j'ai essayé certaines valeurs différentes, et vous pouvez facilement casser le marquage résultant (car vous n'utilisez que html la valeur dans un endroit, et non l'autre), mais la fonction htmlEncode
semble toujours fonctionner sans un message d'erreur que vous lancer .
Vous pouvez également vérifier que la propriété $.html
est en fait une fonction, de sorte que vous ne l'avez pas accidentellement changé quelque part. La valeur de chaîne renvoie le code de fonction:
alert($().html);