2009-06-17 20 views
5

Sto cercando di prendere questo da fonte di vista, cioè .:jQuery selettori

<a href="javascript:validateCB();"><img src="wwv_flow_file_mgr.get_file?p_security_group_id=1343380920146312332&p_flow_id=222&p_fname=submit_btn.gif" alt="Submit Details" border="0" /> 

in jQuery formato selettore

var $templateButtons = $('img[src^="wwv_flow_file_mgr"]').parent('a'); 

Ma questo non sembra essere corretta.

Qualche idea su come tradurre il codice sorgente della vista sopra in jQuery?

Grazie, Tony.

risposta

10

Il problema è con il selettore di attributo: $('img[src^="wwv_flow_file_mgr"]')

Stai vivendo un known bug in jQuery v1.3.2 - jQuery sta cercando di interpretare il percorso dell'immagine utilizzando il suo URL assoluto, il che significa che l'URL che è confrontando in realtà inizia con "http://..."

è possibile ottenere temporaneamente questo utilizzando *= (che cerca un valore di attributo che contiene il testo "wwv_flow_file_mgr" invece di partire con esso):

var $templateButtons = $('img[src*="wwv_flow_file_mgr"]').parent('a'); 
+0

Grazie per i dettagli su questo bug. Non sapevo che esistesse. –

+0

Ciao, ho provato questo, ma sto ricevendo il seguente errore, ad esempio "attr (...)" è null o non è un oggetto. Incerto se è da questo frammento di codice:.. $ templateButtons.attr ('data-submitval', function() {return $ (questo) .attr ('onclick') toString() Split ('\ n ') [2]; }); Qualsiasi aiuto sarebbe apprezzato. – tonyf

1

Questo è molto strano, non funziona con il selettore che hai, anche se, penso che dovrebbe.

Tuttavia, sebbene non sia molto pulito, funziona utilizzando un filtro come mostrato di seguito.

var $templateButtons = $("img") 
         .filter(function(){ 
          return $(this).attr('src') 
            .indexOf('wwv_flow_file_mgr')==0; 
         }).parent('a');