2009-10-14 9 views
1

J'essaie d'obtenir le texte à l'intérieur d'un div spécifique dans une réponse du serveur. J'ai utilisé Firebug pour voir ce que la réponse était, et je peux voir mon élément dans le code retourné, mais pour une raison quelconque, je peux obtenir jQuery pour le capturer. Voici ce que je suis en utilisant:jQuery .find() dans la réponse du serveur

var response = $('<div />').html(serverData); 
$('#uploadedFiles').html($(response).find("#created").text()); 
alert($(response).find("#created").text()); 

Essayer que tout retourne rien, pas du texte ou quoi que ce soit. Est-ce que je fais cela correctement?

Remarque: La réponse du serveur ne provient pas d'une fonction jQuery ajax, mais plutôt du plugin jQuery SWFUpload, est-ce que cela a de l'importance?

+0

Que dit alerte (serverData)? –

+0

Je pense que c'est le même problème que j'avais ici: http://stackoverflow.com/questions/1508095/jquery-query-a-get-returned-string – k0ni

+0

la var "response" contient l'objet jquery. Êtes-vous au courant de cela? –

Répondre

4

Quand exécutez-vous le code? Si vous l'exécutez avant la création de l'élément uploadedFile, le code ne le trouvera pas.

J'ai testé cela, et il fonctionne très bien, il alerte « asdf » et remplace alors « test » avec « asdf » dans l'élément div:

<script type="text/javascript"> 

$(function(){ 
    var response = $('<div />').html('<div id="created">asdf</div>'); 
    alert(response.find("#created").text()); 
    $('#uploadedFiles').html(response.find("#created").text()); 
}); 

</script> 

<div id="uploadedFiles">test</div> 

Notez que response est alread un objet jQuery, donc $(response) est redondant.

+0

Je l'utilise dans la fonction uploadSuccess qui a le paramètre serverData à utiliser. Votre exemple consiste simplement à trouver un ID de lieu, serait-il différent de le saisir dans le paramètre serverData? –

+0

Ah, je l'ai eu le travail. J'ai fait quelques tests de plus et avoir un document html entier était en train de tout gâcher. J'ai corrigé mon script juste pour retourner le code dans la balise

et cela fonctionne parfaitement. Merci. –

+0

@Nic: Oui, si vous passez un code html complexe à la méthode $, il créera l'élément en l'assignant à innerHTML d'un élément div, donc vous ne pouvez pas utiliser un document html complet. – Guffa