parsing html string con jquery

Ho una stringa HTML da una fonte caricata Ajax. Vorrei ottenere alcuni attributi da un object (immagine) in questa stringa, prima di inserire l’HTML nel documento.

Ho qualcosa di simile:

$.ajax({ url: uri+'?js', success: function(data) { var htmlCode = $(data).html(); $('#otherObject').html(data); } }); 

Come posso ottenere attributi ( src per esempio) da questa stringa HTML?

Non sono sicuro al 100%, ma non lo farò

 $(data) 

produrre un object jquery con un DOM per quei dati, non connesso da nessuna parte? O se è già stato analizzato come DOM, potresti semplicemente andare $ (“# myImg”, data), o qualunque altro selettore si adatta alle tue esigenze.

MODIFICARE
Rileggendo la tua domanda sembra che i tuoi “dati” siano già un DOM, il che significa che puoi semplicemente andare (supponendo che ci sia solo una img nel tuo DOM, altrimenti avrai bisogno di un selettore più preciso)

 $("img", data).attr ("src") 

se vuoi accedere all’attributo src. Se i tuoi dati sono solo di testo, probabilmente dovrebbe funzionare

 $("img", $(data)).attr ("src") 

MarvinS.-

Provare:

 $.ajax({ url: uri+'?js', success: function(data) { var imgAttr = $("img", data).attr('src'); var htmlCode = $(data).html(); $('#imgSrc').html(imgAttr); $('#fullHtmlOutput').html(htmlCode); } }); 

Questo dovrebbe caricare l’intero blocco html dai dati in #fullHtmlOutput e lo src dell’immagine in #imgSrc.

basta aggiungere l’elemento contenitore prima del tuo elemento img per essere sicuro che il tuo elemento intersted non sia il primo, testato in ie, ff

Una cosa da notare – dato che oggi avevo esattamente questo problema, a seconda del tuo jQuery HTML potrebbe o non potrebbe analizzarlo così bene. jQuery non analizzava il mio codice HTML in un DOM corretto – su file XML compatibili più piccoli funzionava bene, ma l’HTML che avevo (che avrebbe eseguito il rendering in una pagina) non veniva analizzato quando veniva restituito a un callback Ajax.

Alla fine ho semplicemente cercato manualmente nella stringa il tag che volevo, non ideale ma ha funzionato.