Селекторы jQuery

Я пытаюсь взять это из источника просмотра, то есть:

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

в формат селектора jQuery

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

Но это не кажется правильным.

Как я могу перевести приведенный выше исходный код представления в jQuery?


person tonyf    schedule 17.06.2009    source источник


Ответы (2)


Проблема с селектором атрибутов: $('img[src^="wwv_flow_file_mgr"]')

Вы столкнулись с известной ошибкой в jQuery v1.3.2 — jQuery пытается интерпретировать путь к изображению. используя его абсолютный URL-адрес, что означает, что сравниваемый URL-адрес фактически начинается с «http://...»

Вы можете временно обойти это, используя *= (который ищет значение атрибута, содержащее текст "wwv_flow_file_mgr" вместо того, чтобы начинать с него):

var $templateButtons = $('img[src*="wwv_flow_file_mgr"]').parent('a');
person John Rasch    schedule 17.06.2009
comment
Спасибо за подробную информацию об этой ошибке. Я не знал, что он существует. - person Colin Brock; 17.06.2009
comment
Привет, попробовал это, но я получаю следующую ошибку, то есть attr(...) имеет значение null или не является объектом. Не уверен, что это из этого фрагмента кода: $templateButtons.attr('data-submitval', function(){ return $(this).attr('onclick').toString().split('\n')[2] ; }); Любая помощь будет оценена по достоинству. - person tonyf; 18.06.2009

Это очень странно, это не работает с вашим селектором, хотя я думаю, что должно.

Однако, хотя он и не очень чистый, он работает с фильтром, как показано ниже.

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