$ ("<Div />"). Text (valeur) .html n'est pas une erreur de fonction

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