2009-06-17 9 views
5

estoy tratando de tomar esto de ver código fuente, es decir .:jQuery selectores

<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" /> 

en jQuery selector de formato

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

Pero esto no parece ser correcta.

Alguna idea de cómo traducir el código fuente por encima de la vista en jQuery?

Gracias, Tony.

Respuesta

10

El problema es con el selector de atributos: $('img[src^="wwv_flow_file_mgr"]')

Usted está experimentando una known bug en jQuery v1.3.2 - jQuery está tratando de interpretar la ruta de la imagen utilizando su dirección URL absoluta, lo que significa que la URL es comparando realidad comienza con "http://..."

Usted puede obtener temporalmente este usando *= (que se parece a un valor de atributo que contiene el texto "wwv_flow_file_mgr" en lugar de empezar con él): 012

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

Gracias por los detalles sobre este error. No sabía que existía. –

+0

Hola, lo intenté pero recibo el siguiente error, es decir, "attr (...)" es nulo o no es un objeto. No está seguro si es de este fragmento de código:.. $ templateButtons.attr ('data-submitval', function() {return $ (este) .attr ('onclick') toString() división ('\ n ') [2]; }); Cualquier ayuda sería apreciada. – tonyf

1

Esto es muy raro, que no funciona con el selector que tiene, aunque, creo que debería.

Sin embargo, aunque no es muy limpio, funciona con un filtro como se muestra a continuación.

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