2009-06-17 9 views
5

私はすなわち、ビューのソースからこれを取るしようとしています。: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に翻訳する方法はありますか?

ありがとう、 トニー。

答えて

10

問題は属性セレクタである:$('img[src^="wwv_flow_file_mgr"]')

あなたはjQueryのv1.3.2デベロッパーでknown bugを経験している - jQueryのは、それはだURLを意味し、その絶対URLを使用して画像のパスを解釈しようとしています実際に比較すると、「http://...

で始まるあなたは一時的に(代わりに始まるのテキスト「wwv_flow_file_mgr」を含む属性値を検索します)*=を使用してこの問題を回避することができます

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

このバグに関する詳細をお寄せいただきありがとうございます。私はそれが存在するのか分からなかった。 –

+0

こんにちは、これを試しましたが、次のエラーが表示されます。つまり、 "attr(...)"がnullかオブジェクトではありません。 このコードのスニペットであるかわからない: $ templateButtons.attr( 'data-submitval'、function(){ return $(this).attr( 'onclick')。toString()。split( '\ n ')[2]; }); ご協力いただければ幸いです。 – tonyf

1

これは非常に奇妙です。あなたが持っているセレクターではうまくいきませんが、私はそうすべきだと思います。

ただし、非常にきれいではありませんが、以下のようにフィルタを使用して動作します。

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