tonyf
tonyf

Reputation: 35539

jQuery Selectors

I am trying to take this from view source, i.e.:

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

into jQuery selector format

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

But this doesn't seem to be correct.

How can I translate the above view source code into jQuery?

Upvotes: 5

Views: 4622

Answers (2)

Jose Basilio
Jose Basilio

Reputation: 51468

This is very odd, it doesn't work with the selector you have, although, I think it should.

However, while not very clean, it does work using a filter as shown below.

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

Upvotes: 1

John Rasch
John Rasch

Reputation: 63435

The problem is with the attribute selector: $('img[src^="wwv_flow_file_mgr"]')

You're experiencing a known bug in jQuery v1.3.2 - jQuery is trying to interpret the image path using its absolute URL, which means the URL it's comparing actually starts with "http://..."

You can temporarily get around this using *= (which looks for an attribute value that contains the text "wwv_flow_file_mgr" instead of starting with it):

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

Upvotes: 10

Related Questions